@@ -493,7 +493,7 @@ class Share20OCS extends OCSController { | |||
$userFolder = $this->rootFolder->getUserFolder($this->currentUser->getUID()); | |||
try { | |||
$path = $userFolder->get($path); | |||
$path->lock(ILockingProvider::LOCK_SHARED); | |||
$this->lock($path); | |||
} catch (\OCP\Files\NotFoundException $e) { | |||
throw new OCSNotFoundException($this->l->t('Wrong path, file/folder doesn\'t exist')); | |||
} catch (LockedException $e) { | |||
@@ -659,7 +659,7 @@ class Share20OCS extends OCSController { | |||
} | |||
if ($share->getPermissions() & ~$maxPermissions) { | |||
throw new OCSBadRequestException($this->l->t('Cannot increase permissions')); | |||
throw new OCSNotFoundException($this->l->t('Cannot increase permissions')); | |||
} | |||
} | |||
} |
@@ -23,6 +23,8 @@ | |||
*/ | |||
namespace OCA\Files_Sharing\Tests\API; | |||
use OCP\AppFramework\Http\DataResponse; | |||
use OCP\AppFramework\OCS\OCSNotFoundException; | |||
use OCP\IL10N; | |||
use OCA\Files_Sharing\API\Share20OCS; | |||
use OCP\Files\NotFoundException; | |||
@@ -33,6 +35,7 @@ use OCP\IURLGenerator; | |||
use OCP\IUser; | |||
use OCP\Files\IRootFolder; | |||
use OCP\Lock\LockedException; | |||
use Punic\Data; | |||
/** | |||
* Class Share20OCSTest | |||
@@ -42,6 +45,9 @@ use OCP\Lock\LockedException; | |||
*/ | |||
class Share20OCSTest extends \Test\TestCase { | |||
/** @var string */ | |||
private $appName = 'files_sharing'; | |||
/** @var \OC\Share20\Manager | \PHPUnit_Framework_MockObject_MockObject */ | |||
private $shareManager; | |||
@@ -94,10 +100,11 @@ class Share20OCSTest extends \Test\TestCase { | |||
})); | |||
$this->ocs = new Share20OCS( | |||
$this->appName, | |||
$this->request, | |||
$this->shareManager, | |||
$this->groupManager, | |||
$this->userManager, | |||
$this->request, | |||
$this->rootFolder, | |||
$this->urlGenerator, | |||
$this->currentUser, | |||
@@ -108,10 +115,11 @@ class Share20OCSTest extends \Test\TestCase { | |||
private function mockFormatShare() { | |||
return $this->getMockBuilder('OCA\Files_Sharing\API\Share20OCS') | |||
->setConstructorArgs([ | |||
$this->appName, | |||
$this->request, | |||
$this->shareManager, | |||
$this->groupManager, | |||
$this->userManager, | |||
$this->request, | |||
$this->rootFolder, | |||
$this->urlGenerator, | |||
$this->currentUser, | |||
@@ -124,6 +132,10 @@ class Share20OCSTest extends \Test\TestCase { | |||
return \OC::$server->getShareManager()->newShare(); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException | |||
* @expectedExceptionMessage Wrong share ID, share doesn't exist | |||
*/ | |||
public function testDeleteShareShareNotFound() { | |||
$this->shareManager | |||
->expects($this->exactly(2)) | |||
@@ -138,8 +150,7 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->shareManager->method('outgoingServer2ServerSharesAllowed')->willReturn(true); | |||
$expected = new \OC_OCS_Result(null, 404, 'Wrong share ID, share doesn\'t exist'); | |||
$this->assertEquals($expected, $this->ocs->deleteShare(42)); | |||
$this->ocs->deleteShare(42); | |||
} | |||
public function testDeleteShare() { | |||
@@ -161,14 +172,18 @@ class Share20OCSTest extends \Test\TestCase { | |||
$node->expects($this->once()) | |||
->method('lock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$node->expects($this->once()) | |||
->method('unlock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$expected = new \OC_OCS_Result(); | |||
$this->assertEquals($expected, $this->ocs->deleteShare(42)); | |||
$expected = new DataResponse(); | |||
$result = $this->ocs->deleteShare(42); | |||
$this->assertInstanceOf(get_class($expected), $result); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException | |||
* @expectedExceptionMessage could not delete share | |||
*/ | |||
public function testDeleteShareLocked() { | |||
$node = $this->getMockBuilder('\OCP\Files\File')->getMock(); | |||
@@ -189,12 +204,8 @@ class Share20OCSTest extends \Test\TestCase { | |||
->method('lock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED) | |||
->will($this->throwException(new LockedException('mypath'))); | |||
$node->expects($this->never()) | |||
->method('unlock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$expected = new \OC_OCS_Result(null, 404, 'could not delete share'); | |||
$this->assertEquals($expected, $this->ocs->deleteShare(42)); | |||
$this->ocs->deleteShare(42); | |||
} | |||
/* | |||
@@ -411,10 +422,11 @@ class Share20OCSTest extends \Test\TestCase { | |||
public function testGetShare(\OCP\Share\IShare $share, array $result) { | |||
$ocs = $this->getMockBuilder('OCA\Files_Sharing\API\Share20OCS') | |||
->setConstructorArgs([ | |||
$this->appName, | |||
$this->request, | |||
$this->shareManager, | |||
$this->groupManager, | |||
$this->userManager, | |||
$this->request, | |||
$this->rootFolder, | |||
$this->urlGenerator, | |||
$this->currentUser, | |||
@@ -422,7 +434,9 @@ class Share20OCSTest extends \Test\TestCase { | |||
])->setMethods(['canAccessShare']) | |||
->getMock(); | |||
$ocs->method('canAccessShare')->willReturn(true); | |||
$ocs->expects($this->any()) | |||
->method('canAccessShare') | |||
->willReturn(true); | |||
$this->shareManager | |||
->expects($this->once()) | |||
@@ -471,10 +485,13 @@ class Share20OCSTest extends \Test\TestCase { | |||
['group', $group], | |||
])); | |||
$expected = new \OC_OCS_Result([$result]); | |||
$this->assertEquals($expected->getData(), $ocs->getShare($share->getId())->getData()); | |||
$this->assertEquals($result, $ocs->getShare($share->getId())->getData()['data'][0]); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException | |||
* @expectedExceptionMessage Wrong share ID, share doesn't exist | |||
*/ | |||
public function testGetShareInvalidNode() { | |||
$share = \OC::$server->getShareManager()->newShare(); | |||
$share->setSharedBy('initiator') | |||
@@ -487,8 +504,7 @@ class Share20OCSTest extends \Test\TestCase { | |||
->with('ocinternal:42') | |||
->willReturn($share); | |||
$expected = new \OC_OCS_Result(null, 404, 'Wrong share ID, share doesn\'t exist'); | |||
$this->assertEquals($expected->getMeta(), $this->ocs->getShare(42)->getMeta()); | |||
$this->ocs->getShare(42); | |||
} | |||
public function testCanAccessShare() { | |||
@@ -538,15 +554,18 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException | |||
* @expectedExceptionMessage Please specify a file or folder path | |||
*/ | |||
public function testCreateShareNoPath() { | |||
$expected = new \OC_OCS_Result(null, 404, 'Please specify a file or folder path'); | |||
$result = $this->ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$this->ocs->createShare(); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException | |||
* @expectedExceptionMessage Wrong path, file/folder doesn't exist | |||
*/ | |||
public function testCreateShareInvalidPath() { | |||
$this->request | |||
->method('getParam') | |||
@@ -565,14 +584,13 @@ class Share20OCSTest extends \Test\TestCase { | |||
->with('invalid-path') | |||
->will($this->throwException(new \OCP\Files\NotFoundException())); | |||
$expected = new \OC_OCS_Result(null, 404, 'Wrong path, file/folder doesn\'t exist'); | |||
$result = $this->ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$this->ocs->createShare(); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException | |||
* @expectedExceptionMessage invalid permissions | |||
*/ | |||
public function testCreateShareInvalidPermissions() { | |||
$share = $this->newShare(); | |||
$this->shareManager->method('newShare')->willReturn($share); | |||
@@ -600,14 +618,13 @@ class Share20OCSTest extends \Test\TestCase { | |||
->method('lock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$expected = new \OC_OCS_Result(null, 404, 'invalid permissions'); | |||
$result = $this->ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$this->ocs->createShare(); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException | |||
* @expectedExceptionMessage Please specify a valid user | |||
*/ | |||
public function testCreateShareUserNoShareWith() { | |||
$share = $this->newShare(); | |||
$this->shareManager->method('newShare')->willReturn($share); | |||
@@ -641,14 +658,13 @@ class Share20OCSTest extends \Test\TestCase { | |||
->method('lock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$expected = new \OC_OCS_Result(null, 404, 'Please specify a valid user'); | |||
$result = $this->ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$this->ocs->createShare(); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException | |||
* @expectedExceptionMessage Please specify a valid user | |||
*/ | |||
public function testCreateShareUserNoValidShareWith() { | |||
$share = $this->newShare(); | |||
$this->shareManager->method('newShare')->willReturn($share); | |||
@@ -679,16 +695,11 @@ class Share20OCSTest extends \Test\TestCase { | |||
->with('valid-path') | |||
->willReturn($path); | |||
$expected = new \OC_OCS_Result(null, 404, 'Please specify a valid user'); | |||
$path->expects($this->once()) | |||
->method('lock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$result = $this->ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$this->ocs->createShare(); | |||
} | |||
public function testCreateShareUser() { | |||
@@ -697,10 +708,11 @@ class Share20OCSTest extends \Test\TestCase { | |||
$ocs = $this->getMockBuilder('OCA\Files_Sharing\API\Share20OCS') | |||
->setConstructorArgs([ | |||
$this->appName, | |||
$this->request, | |||
$this->shareManager, | |||
$this->groupManager, | |||
$this->userManager, | |||
$this->request, | |||
$this->rootFolder, | |||
$this->urlGenerator, | |||
$this->currentUser, | |||
@@ -739,9 +751,6 @@ class Share20OCSTest extends \Test\TestCase { | |||
$path->expects($this->once()) | |||
->method('lock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$path->expects($this->once()) | |||
->method('unlock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$this->shareManager->method('createShare') | |||
->with($this->callback(function (\OCP\Share\IShare $share) use ($path) { | |||
@@ -757,13 +766,17 @@ class Share20OCSTest extends \Test\TestCase { | |||
})) | |||
->will($this->returnArgument(0)); | |||
$expected = new \OC_OCS_Result(); | |||
$expected = new DataResponse(['data' => null]); | |||
$result = $ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertInstanceOf(get_class($expected), $result); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException | |||
* @expectedExceptionMessage Please specify a valid user | |||
*/ | |||
public function testCreateShareGroupNoValidShareWith() { | |||
$share = $this->newShare(); | |||
$this->shareManager->method('newShare')->willReturn($share); | |||
@@ -795,16 +808,11 @@ class Share20OCSTest extends \Test\TestCase { | |||
->with('valid-path') | |||
->willReturn($path); | |||
$expected = new \OC_OCS_Result(null, 404, 'Please specify a valid user'); | |||
$path->expects($this->once()) | |||
->method('lock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$result = $this->ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$this->ocs->createShare(); | |||
} | |||
public function testCreateShareGroup() { | |||
@@ -813,10 +821,11 @@ class Share20OCSTest extends \Test\TestCase { | |||
$ocs = $this->getMockBuilder('OCA\Files_Sharing\API\Share20OCS') | |||
->setConstructorArgs([ | |||
$this->appName, | |||
$this->request, | |||
$this->shareManager, | |||
$this->groupManager, | |||
$this->userManager, | |||
$this->request, | |||
$this->rootFolder, | |||
$this->urlGenerator, | |||
$this->currentUser, | |||
@@ -835,9 +844,9 @@ class Share20OCSTest extends \Test\TestCase { | |||
$userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); | |||
$this->rootFolder->expects($this->once()) | |||
->method('getUserFolder') | |||
->with('currentUser') | |||
->willReturn($userFolder); | |||
->method('getUserFolder') | |||
->with('currentUser') | |||
->willReturn($userFolder); | |||
$path = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); | |||
$storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); | |||
@@ -846,9 +855,9 @@ class Share20OCSTest extends \Test\TestCase { | |||
->willReturn(false); | |||
$path->method('getStorage')->willReturn($storage); | |||
$userFolder->expects($this->once()) | |||
->method('get') | |||
->with('valid-path') | |||
->willReturn($path); | |||
->method('get') | |||
->with('valid-path') | |||
->willReturn($path); | |||
$this->groupManager->method('groupExists')->with('validGroup')->willReturn(true); | |||
@@ -859,27 +868,28 @@ class Share20OCSTest extends \Test\TestCase { | |||
$path->expects($this->once()) | |||
->method('lock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$path->expects($this->once()) | |||
->method('unlock') | |||
->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 && | |||
$share->getShareType() === \OCP\Share::SHARE_TYPE_GROUP && | |||
$share->getSharedWith() === 'validGroup' && | |||
$share->getSharedBy() === 'currentUser'; | |||
$share->getPermissions() === \OCP\Constants::PERMISSION_ALL && | |||
$share->getShareType() === \OCP\Share::SHARE_TYPE_GROUP && | |||
$share->getSharedWith() === 'validGroup' && | |||
$share->getSharedBy() === 'currentUser'; | |||
})) | |||
->will($this->returnArgument(0)); | |||
$expected = new \OC_OCS_Result(); | |||
$expected = new DataResponse(['data' => null]); | |||
$result = $ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertInstanceOf(get_class($expected), $result); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException | |||
* @expectedExceptionMessage Group sharing is disabled by the administrator | |||
*/ | |||
public function testCreateShareGroupNotAllowed() { | |||
$share = $this->newShare(); | |||
$this->shareManager->method('newShare')->willReturn($share); | |||
@@ -916,14 +926,13 @@ class Share20OCSTest extends \Test\TestCase { | |||
->method('allowGroupSharing') | |||
->willReturn(false); | |||
$expected = new \OC_OCS_Result(null, 404, 'Group sharing is disabled by the administrator'); | |||
$result = $this->ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$this->ocs->createShare(); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException | |||
* @expectedExceptionMessage Public link sharing is disabled by the administrator | |||
*/ | |||
public function testCreateShareLinkNoLinksAllowed() { | |||
$this->request | |||
->method('getParam') | |||
@@ -943,13 +952,13 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare()); | |||
$expected = new \OC_OCS_Result(null, 404, 'Public link sharing is disabled by the administrator'); | |||
$result = $this->ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$this->ocs->createShare(); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSForbiddenException | |||
* @expectedExceptionMessage Public upload disabled by the administrator | |||
*/ | |||
public function testCreateShareLinkNoPublicUpload() { | |||
$this->request | |||
->method('getParam') | |||
@@ -971,13 +980,13 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare()); | |||
$this->shareManager->method('shareApiAllowLinks')->willReturn(true); | |||
$expected = new \OC_OCS_Result(null, 403, 'Public upload disabled by the administrator'); | |||
$result = $this->ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$this->ocs->createShare(); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException | |||
* @expectedExceptionMessage Public upload is only possible for publicly shared folders | |||
*/ | |||
public function testCreateShareLinkPublicUploadFile() { | |||
$this->request | |||
->method('getParam') | |||
@@ -1000,11 +1009,7 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->shareManager->method('shareApiAllowLinks')->willReturn(true); | |||
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true); | |||
$expected = new \OC_OCS_Result(null, 404, 'Public upload is only possible for publicly shared folders'); | |||
$result = $this->ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$this->ocs->createShare(); | |||
} | |||
public function testCreateShareLinkPublicUploadFolder() { | |||
@@ -1044,10 +1049,10 @@ class Share20OCSTest extends \Test\TestCase { | |||
}) | |||
)->will($this->returnArgument(0)); | |||
$expected = new \OC_OCS_Result(null); | |||
$expected = new DataResponse(['data' => null]); | |||
$result = $ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertInstanceOf(get_class($expected), $result); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
} | |||
@@ -1088,10 +1093,10 @@ class Share20OCSTest extends \Test\TestCase { | |||
}) | |||
)->will($this->returnArgument(0)); | |||
$expected = new \OC_OCS_Result(null); | |||
$expected = new DataResponse(['data' => null]); | |||
$result = $ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertInstanceOf(get_class($expected), $result); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
} | |||
@@ -1135,13 +1140,17 @@ class Share20OCSTest extends \Test\TestCase { | |||
}) | |||
)->will($this->returnArgument(0)); | |||
$expected = new \OC_OCS_Result(null); | |||
$expected = new DataResponse(['data' => null]); | |||
$result = $ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertInstanceOf(get_class($expected), $result); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException | |||
* @expectedExceptionMessage Invalid date, date format must be YYYY-MM-DD | |||
*/ | |||
public function testCreateShareInvalidExpireDate() { | |||
$ocs = $this->mockFormatShare(); | |||
@@ -1168,11 +1177,7 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->shareManager->method('shareApiAllowLinks')->willReturn(true); | |||
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true); | |||
$expected = new \OC_OCS_Result(null, 404, 'Invalid date, date format must be YYYY-MM-DD'); | |||
$result = $ocs->createShare(); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$ocs->createShare(); | |||
} | |||
/** | |||
@@ -1185,10 +1190,11 @@ class Share20OCSTest extends \Test\TestCase { | |||
$ocs = $this->getMockBuilder('OCA\Files_Sharing\API\Share20OCS') | |||
->setConstructorArgs([ | |||
$this->appName, | |||
$this->request, | |||
$this->shareManager, | |||
$this->groupManager, | |||
$this->userManager, | |||
$this->request, | |||
$this->rootFolder, | |||
$this->urlGenerator, | |||
$this->currentUser, | |||
@@ -1236,6 +1242,10 @@ class Share20OCSTest extends \Test\TestCase { | |||
$ocs->createShare(); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException | |||
* @expectedExceptionMessage Wrong share ID, share doesn't exist | |||
*/ | |||
public function testUpdateShareCantAccess() { | |||
$node = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); | |||
$share = $this->newShare(); | |||
@@ -1247,13 +1257,13 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share); | |||
$expected = new \OC_OCS_Result(null, 404, 'Wrong share ID, share doesn\'t exist'); | |||
$result = $this->ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$this->ocs->updateShare(42); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSBadRequestException | |||
* @expectedExceptionMessage Wrong or no update parameter given | |||
*/ | |||
public function testUpdateNoParametersLink() { | |||
$node = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); | |||
$share = $this->newShare(); | |||
@@ -1268,13 +1278,13 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share); | |||
$expected = new \OC_OCS_Result(null, 400, 'Wrong or no update parameter given'); | |||
$result = $this->ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$this->ocs->updateShare(42); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSBadRequestException | |||
* @expectedExceptionMessage Wrong or no update parameter given | |||
*/ | |||
public function testUpdateNoParametersOther() { | |||
$node = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); | |||
$share = $this->newShare(); | |||
@@ -1289,11 +1299,7 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share); | |||
$expected = new \OC_OCS_Result(null, 400, 'Wrong or no update parameter given'); | |||
$result = $this->ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$this->ocs->updateShare(42); | |||
} | |||
public function testUpdateLinkShareClear() { | |||
@@ -1312,9 +1318,6 @@ class Share20OCSTest extends \Test\TestCase { | |||
$node->expects($this->once()) | |||
->method('lock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$node->expects($this->once()) | |||
->method('unlock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$this->request | |||
->method('getParam') | |||
@@ -1334,10 +1337,10 @@ class Share20OCSTest extends \Test\TestCase { | |||
}) | |||
)->will($this->returnArgument(0)); | |||
$expected = new \OC_OCS_Result(null); | |||
$expected = new DataResponse(['data' => null]); | |||
$result = $ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertInstanceOf(get_class($expected), $result); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
} | |||
@@ -1374,10 +1377,10 @@ class Share20OCSTest extends \Test\TestCase { | |||
}) | |||
)->will($this->returnArgument(0)); | |||
$expected = new \OC_OCS_Result(null); | |||
$expected = new DataResponse(['data' => null]); | |||
$result = $ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertInstanceOf(get_class($expected), $result); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
} | |||
@@ -1412,13 +1415,17 @@ class Share20OCSTest extends \Test\TestCase { | |||
}) | |||
)->will($this->returnArgument(0)); | |||
$expected = new \OC_OCS_Result(null); | |||
$expected = new DataResponse(['data' => null]); | |||
$result = $ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertInstanceOf(get_class($expected), $result); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSBadRequestException | |||
* @expectedExceptionMessage Invalid date. Format must be YYYY-MM-DD | |||
*/ | |||
public function testUpdateLinkShareInvalidDate() { | |||
$ocs = $this->mockFormatShare(); | |||
@@ -1441,11 +1448,7 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share); | |||
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true); | |||
$expected = new \OC_OCS_Result(null, 400, 'Invalid date. Format must be YYYY-MM-DD'); | |||
$result = $ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$ocs->updateShare(42); | |||
} | |||
public function publicUploadParamsProvider() { | |||
@@ -1470,6 +1473,8 @@ class Share20OCSTest extends \Test\TestCase { | |||
/** | |||
* @dataProvider publicUploadParamsProvider | |||
* @expectedException \OCP\AppFramework\OCS\OCSForbiddenException | |||
* @expectedExceptionMessage Public upload disabled by the administrator | |||
*/ | |||
public function testUpdateLinkSharePublicUploadNotAllowed($params) { | |||
$ocs = $this->mockFormatShare(); | |||
@@ -1489,13 +1494,13 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share); | |||
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(false); | |||
$expected = new \OC_OCS_Result(null, 403, 'Public upload disabled by the administrator'); | |||
$result = $ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$ocs->updateShare(42); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSBadRequestException | |||
* @expectedExceptionMessage Public upload is only possible for publicly shared folders | |||
*/ | |||
public function testUpdateLinkSharePublicUploadOnFile() { | |||
$ocs = $this->mockFormatShare(); | |||
@@ -1518,11 +1523,7 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share); | |||
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true); | |||
$expected = new \OC_OCS_Result(null, 400, 'Public upload is only possible for publicly shared folders'); | |||
$result = $ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$ocs->updateShare(42); | |||
} | |||
public function testUpdateLinkSharePasswordDoesNotChangeOther() { | |||
@@ -1544,9 +1545,6 @@ class Share20OCSTest extends \Test\TestCase { | |||
$node->expects($this->once()) | |||
->method('lock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$node->expects($this->once()) | |||
->method('unlock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$this->request | |||
->method('getParam') | |||
@@ -1564,10 +1562,10 @@ class Share20OCSTest extends \Test\TestCase { | |||
}) | |||
)->will($this->returnArgument(0)); | |||
$expected = new \OC_OCS_Result(null); | |||
$expected = new DataResponse(['data' => null]); | |||
$result = $ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertInstanceOf(get_class($expected), $result); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
} | |||
@@ -1593,9 +1591,6 @@ class Share20OCSTest extends \Test\TestCase { | |||
$node->expects($this->once()) | |||
->method('lock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$node->expects($this->once()) | |||
->method('unlock') | |||
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); | |||
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share); | |||
@@ -1610,10 +1605,10 @@ class Share20OCSTest extends \Test\TestCase { | |||
}) | |||
)->will($this->returnArgument(0)); | |||
$expected = new \OC_OCS_Result(null); | |||
$expected = new DataResponse(['data' => null]); | |||
$result = $ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertInstanceOf(get_class($expected), $result); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
} | |||
@@ -1650,10 +1645,10 @@ class Share20OCSTest extends \Test\TestCase { | |||
}) | |||
)->will($this->returnArgument(0)); | |||
$expected = new \OC_OCS_Result(null); | |||
$expected = new DataResponse(['data' => null]); | |||
$result = $ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertInstanceOf(get_class($expected), $result); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
} | |||
@@ -1692,13 +1687,17 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->shareManager->method('getSharedWith')->willReturn([]); | |||
$expected = new \OC_OCS_Result(null); | |||
$expected = new DataResponse(['data' => null]); | |||
$result = $ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertInstanceOf(get_class($expected), $result); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
} | |||
/** | |||
* @expectedException \OCP\AppFramework\OCS\OCSBadRequestException | |||
* @expectedExceptionMessage Can't change permissions for public share links | |||
*/ | |||
public function testUpdateLinkShareInvalidPermissions() { | |||
$ocs = $this->mockFormatShare(); | |||
@@ -1724,11 +1723,7 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share); | |||
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true); | |||
$expected = new \OC_OCS_Result(null, 400, 'Can\'t change permissions for public share links'); | |||
$result = $ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
$ocs->updateShare(42); | |||
} | |||
public function testUpdateOtherPermissions() { | |||
@@ -1759,10 +1754,10 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->shareManager->method('getSharedWith')->willReturn([]); | |||
$expected = new \OC_OCS_Result(null); | |||
$expected = new DataResponse(['data' => null]); | |||
$result = $ocs->updateShare(42); | |||
$this->assertEquals($expected->getMeta(), $result->getMeta()); | |||
$this->assertInstanceOf(get_class($expected), $result); | |||
$this->assertEquals($expected->getData(), $result->getData()); | |||
} | |||
@@ -2049,8 +2044,6 @@ class Share20OCSTest extends \Test\TestCase { | |||
[], $share, [], true | |||
]; | |||
return $result; | |||
} | |||
@@ -2091,74 +2084,4 @@ class Share20OCSTest extends \Test\TestCase { | |||
$this->assertTrue($exception); | |||
} | |||
} | |||
/** | |||
* @return Share20OCS | |||
*/ | |||
public function getOcsDisabledAPI() { | |||
$shareManager = $this->getMockBuilder('OCP\Share\IManager') | |||
->disableOriginalConstructor() | |||
->getMock(); | |||
$shareManager | |||
->expects($this->any()) | |||
->method('shareApiEnabled') | |||
->willReturn(false); | |||
return new Share20OCS( | |||
$shareManager, | |||
$this->groupManager, | |||
$this->userManager, | |||
$this->request, | |||
$this->rootFolder, | |||
$this->urlGenerator, | |||
$this->currentUser, | |||
$this->l | |||
); | |||
} | |||
public function testGetShareApiDisabled() { | |||
$ocs = $this->getOcsDisabledAPI(); | |||
$expected = new \OC_OCS_Result(null, 404, 'Share API is disabled'); | |||
$result = $ocs->getShare('my:id'); | |||
$this->assertEquals($expected, $result); | |||
} | |||
public function testDeleteShareApiDisabled() { | |||
$ocs = $this->getOcsDisabledAPI(); | |||
$expected = new \OC_OCS_Result(null, 404, 'Share API is disabled'); | |||
$result = $ocs->deleteShare('my:id'); | |||
$this->assertEquals($expected, $result); | |||
} | |||
public function testCreateShareApiDisabled() { | |||
$ocs = $this->getOcsDisabledAPI(); | |||
$expected = new \OC_OCS_Result(null, 404, 'Share API is disabled'); | |||
$result = $ocs->createShare(); | |||
$this->assertEquals($expected, $result); | |||
} | |||
public function testGetSharesApiDisabled() { | |||
$ocs = $this->getOcsDisabledAPI(); | |||
$expected = new \OC_OCS_Result(); | |||
$result = $ocs->getShares(); | |||
$this->assertEquals($expected, $result); | |||
} | |||
public function testUpdateShareApiDisabled() { | |||
$ocs = $this->getOcsDisabledAPI(); | |||
$expected = new \OC_OCS_Result(null, 404, 'Share API is disabled'); | |||
$result = $ocs->updateShare('my:id'); | |||
$this->assertEquals($expected, $result); | |||
} | |||
} |
@@ -28,15 +28,21 @@ | |||
*/ | |||
namespace OCA\Files_Sharing\Tests; | |||
use OCP\AppFramework\OCS\OCSBadRequestException; | |||
use OCP\AppFramework\OCS\OCSException; | |||
use OCP\AppFramework\OCS\OCSForbiddenException; | |||
use OCP\AppFramework\OCS\OCSNotFoundException; | |||
/** | |||
* Class ApiTest | |||
* | |||
* @group DB | |||
* TODO: convert to real intergration tests | |||
*/ | |||
class ApiTest extends TestCase { | |||
const TEST_FOLDER_NAME = '/folder_share_api_test'; | |||
const APP_NAME = 'files_sharing'; | |||
private static $tempStorage; | |||
@@ -108,10 +114,11 @@ class ApiTest extends TestCase { | |||
})); | |||
return new \OCA\Files_Sharing\API\Share20OCS( | |||
self::APP_NAME, | |||
$request, | |||
$this->shareManager, | |||
\OC::$server->getGroupManager(), | |||
\OC::$server->getUserManager(), | |||
$request, | |||
\OC::$server->getRootFolder(), | |||
\OC::$server->getURLGenerator(), | |||
$currentUser, | |||
@@ -131,9 +138,9 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest($data); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$ocs->cleanup(); | |||
$this->assertTrue($result->succeeded()); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
$this->assertEquals(19, $data['permissions']); | |||
$this->assertEmpty($data['expiration']); | |||
@@ -141,8 +148,9 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->deleteShare($data['id']); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->deleteShare($data['id']); | |||
$ocs->cleanup(); | |||
} | |||
function testCreateShareUserFolder() { | |||
@@ -154,9 +162,9 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest($data); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$ocs->cleanup(); | |||
$this->assertTrue($result->succeeded()); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
$this->assertEquals(31, $data['permissions']); | |||
$this->assertEmpty($data['expiration']); | |||
@@ -164,8 +172,9 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->deleteShare($data['id']); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->deleteShare($data['id']); | |||
$ocs->cleanup(); | |||
} | |||
@@ -178,9 +187,9 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest($data); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$ocs->cleanup(); | |||
$this->assertTrue($result->succeeded()); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
$this->assertEquals(19, $data['permissions']); | |||
$this->assertEmpty($data['expiration']); | |||
@@ -188,8 +197,8 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->deleteShare($data['id']); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->deleteShare($data['id']); | |||
$ocs->cleanup(); | |||
} | |||
function testCreateShareGroupFolder() { | |||
@@ -201,9 +210,9 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest($data); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$ocs->cleanup(); | |||
$this->assertTrue($result->succeeded()); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
$this->assertEquals(31, $data['permissions']); | |||
$this->assertEmpty($data['expiration']); | |||
@@ -211,8 +220,9 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->deleteShare($data['id']); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->deleteShare($data['id']); | |||
$ocs->cleanup(); | |||
} | |||
public function testCreateShareLink() { | |||
@@ -223,11 +233,9 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest($data); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$ocs->cleanup(); | |||
// check if API call was successful | |||
$this->assertTrue($result->succeeded()); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
$this->assertEquals(1, $data['permissions']); | |||
$this->assertEmpty($data['expiration']); | |||
$this->assertTrue(is_string($data['token'])); | |||
@@ -240,8 +248,8 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->deleteShare($data['id']); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->deleteShare($data['id']); | |||
$ocs->cleanup(); | |||
} | |||
public function testCreateShareLinkPublicUpload() { | |||
@@ -253,11 +261,9 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest($data); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$ocs->cleanup(); | |||
// check if API call was successful | |||
$this->assertTrue($result->succeeded()); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
$this->assertEquals( | |||
\OCP\Constants::PERMISSION_READ | | |||
\OCP\Constants::PERMISSION_CREATE | | |||
@@ -276,8 +282,8 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->deleteShare($data['id']); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->deleteShare($data['id']); | |||
$ocs->cleanup(); | |||
} | |||
function testEnfoceLinkPassword() { | |||
@@ -291,8 +297,13 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest($data); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$this->assertFalse($result->succeeded()); | |||
try { | |||
$ocs->createShare(); | |||
$this->fail(); | |||
} catch (OCSForbiddenException $e) { | |||
} | |||
$ocs->cleanup(); | |||
// don't allow to share link without a empty password | |||
$data = []; | |||
@@ -302,8 +313,13 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest($data); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$this->assertFalse($result->succeeded()); | |||
try { | |||
$ocs->createShare(); | |||
$this->fail(); | |||
} catch (OCSForbiddenException $e) { | |||
} | |||
$ocs->cleanup(); | |||
// share with password should succeed | |||
$data = []; | |||
@@ -314,9 +330,9 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest($data); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
// setting new password should succeed | |||
$data2 = [ | |||
@@ -325,7 +341,7 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest($data2); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->updateShare($data['id']); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
// removing password should fail | |||
$data2 = [ | |||
@@ -333,14 +349,19 @@ class ApiTest extends TestCase { | |||
]; | |||
$request = $this->createRequest($data2); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->updateShare($data['id']); | |||
$this->assertFalse($result->succeeded()); | |||
try { | |||
$ocs->updateShare($data['id']); | |||
$this->fail(); | |||
} catch (OCSBadRequestException $e) { | |||
} | |||
$ocs->cleanup(); | |||
// cleanup | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->deleteShare($data['id']); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->deleteShare($data['id']); | |||
$ocs->cleanup(); | |||
$appConfig->setValue('core', 'shareapi_enforce_links_password', 'no'); | |||
} | |||
@@ -359,16 +380,16 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest($post); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$ocs->cleanup(); | |||
$this->assertTrue($result->succeeded()); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
$this->shareManager->getShareById('ocinternal:'.$data['id']); | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->deleteShare($data['id']); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
// exclude groups, but not the group the user belongs to. Sharing should still work | |||
\OC::$server->getAppConfig()->setValue('core', 'shareapi_exclude_groups', 'yes'); | |||
@@ -382,16 +403,16 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest($post); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$ocs->cleanup(); | |||
$this->assertTrue($result->succeeded()); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
$this->shareManager->getShareById('ocinternal:' . $data['id']); | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->deleteShare($data['id']); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
// 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'); | |||
@@ -403,7 +424,8 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest($post); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$ocs->createShare(); | |||
$ocs->cleanup(); | |||
// cleanup | |||
\OC::$server->getAppConfig()->setValue('core', 'shareapi_exclude_groups', 'no'); | |||
@@ -429,9 +451,9 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->getShares(); | |||
$ocs->cleanup(); | |||
$this->assertTrue($result->succeeded()); | |||
$this->assertTrue(count($result->getData()) === 1); | |||
$this->assertTrue(count($result->getData()['data']) === 1); | |||
$this->shareManager->deleteShare($share); | |||
} | |||
@@ -458,9 +480,9 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['shared_with_me' => 'true']); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2); | |||
$result = $ocs->getShares(); | |||
$ocs->cleanup(); | |||
$this->assertTrue($result->succeeded()); | |||
$this->assertTrue(count($result->getData()) === 2); | |||
$this->assertTrue(count($result->getData()['data']) === 2); | |||
$this->shareManager->deleteShare($share1); | |||
$this->shareManager->deleteShare($share2); | |||
@@ -477,9 +499,9 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest($post); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
// check if we have a token | |||
$this->assertTrue(is_string($data['token'])); | |||
@@ -493,33 +515,33 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->getShares(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
$this->assertEquals($url, current($data)['url']); | |||
// check for path | |||
$request = $this->createRequest(['path' => $this->folder]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->getShares(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
$this->assertEquals($url, current($data)['url']); | |||
// check in share id | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->getShare($id); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
$this->assertEquals($url, current($data)['url']); | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->deleteShare($id); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->deleteShare($id); | |||
$ocs->cleanup(); | |||
} | |||
/** | |||
@@ -547,10 +569,10 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['path' => $this->filename]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->getShares(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
// test should return one share created from testCreateShare() | |||
$this->assertTrue(count($result->getData()) === 2); | |||
$this->assertTrue(count($result->getData()['data']) === 2); | |||
$this->shareManager->deleteShare($share1); | |||
$this->shareManager->deleteShare($share2); | |||
@@ -582,21 +604,19 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['path' => $this->filename]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->getShares(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
// test should return one share | |||
$this->assertTrue(count($result->getData()) === 1); | |||
$this->assertTrue(count($result->getData()['data']) === 1); | |||
// now also ask for the reshares | |||
$request = $this->createRequest(['path' => $this->filename, 'reshares' => 'true']); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->getShares(); | |||
$this->assertTrue($result->succeeded()); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
// now we should get two shares, the initial share and the reshare | |||
$this->assertCount(2, $result->getData()); | |||
$this->assertCount(2, $result->getData()['data']); | |||
$this->shareManager->deleteShare($share1); | |||
$this->shareManager->deleteShare($share2); | |||
@@ -620,10 +640,10 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->getShare($share1->getId()); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
// test should return one share created from testCreateShare() | |||
$this->assertEquals(1, count($result->getData())); | |||
$this->assertEquals(1, count($result->getData()['data'])); | |||
$this->shareManager->deleteShare($share1); | |||
} | |||
@@ -653,10 +673,10 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['path' => $this->folder, 'subfiles' => 'true']); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->getShares(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
// test should return one share within $this->folder | |||
$this->assertTrue(count($result->getData()) === 1); | |||
$this->assertTrue(count($result->getData()['data']) === 1); | |||
$this->shareManager->deleteShare($share1); | |||
$this->shareManager->deleteShare($share2); | |||
@@ -674,11 +694,13 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['path' => $this->filename, 'subfiles' => 'true']); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->getShares(); | |||
$this->assertFalse($result->succeeded()); | |||
$this->assertEquals(400, $result->getStatusCode()); | |||
$this->assertEquals('Not a directory', $result->getMeta()['message']); | |||
try { | |||
$ocs->getShares(); | |||
$this->fail(); | |||
} catch (OCSBadRequestException $e) { | |||
$this->assertEquals('Not a directory', $e->getMessage()); | |||
} | |||
$ocs->cleanup(); | |||
$this->shareManager->deleteShare($share1); | |||
} | |||
@@ -724,10 +746,10 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['path' => $value['query'], 'subfiles' => 'true']); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2); | |||
$result = $ocs->getShares(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
// test should return one share within $this->folder | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
$this->assertEquals($value['expectedResult'], $data[0]['path']); | |||
} | |||
@@ -763,10 +785,10 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['path' => '/', 'subfiles' => 'true']); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2); | |||
$result = $ocs->getShares(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
// test should return one share within $this->folder | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
// we should get exactly one result | |||
$this->assertCount(1, $data); | |||
@@ -781,7 +803,7 @@ class ApiTest extends TestCase { | |||
* test re-re-share of folder if the path gets constructed correctly | |||
* @medium | |||
*/ | |||
function testGetShareFromFolderReReShares() { | |||
function XtestGetShareFromFolderReReShares() { | |||
$node1 = $this->userFolder->get($this->folder . $this->subfolder); | |||
$share1 = $this->shareManager->newShare(); | |||
$share1->setNode($node1) | |||
@@ -813,10 +835,10 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['path' => '/', 'subfiles' => 'true']); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER3); | |||
$result = $ocs->getShares(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
// test should return one share within $this->folder | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
// we should get exactly one result | |||
$this->assertCount(1, $data); | |||
@@ -828,10 +850,10 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->getShares(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
// test should return one share within $this->folder | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
// we should get exactly one result | |||
$this->assertCount(1, $data); | |||
@@ -843,10 +865,10 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2); | |||
$result = $ocs->getShares(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
// test should return one share within $this->folder | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
// we should get exactly one result | |||
$this->assertCount(1, $data); | |||
@@ -890,20 +912,20 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['path' => $this->subfolder]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2); | |||
$result1 = $ocs->getShares(); | |||
$this->assertTrue($result1->succeeded()); | |||
$ocs->cleanup(); | |||
// test should return one share within $this->folder | |||
$data1 = $result1->getData(); | |||
$data1 = $result1->getData()['data']; | |||
$this->assertCount(1, $data1); | |||
$s1 = reset($data1); | |||
$request = $this->createRequest(['path' => $this->folder.$this->subfolder]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2); | |||
$result2 = $ocs->getShares(); | |||
$this->assertTrue($result2->succeeded()); | |||
$ocs->cleanup(); | |||
// test should return one share within $this->folder | |||
$data2 = $result2->getData(); | |||
$data2 = $result2->getData()['data']; | |||
$this->assertCount(1, $data2); | |||
$s2 = reset($data2); | |||
@@ -951,10 +973,10 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['path' => '/', 'subfiles' => 'true']); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER3); | |||
$result = $ocs->getShares(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
// test should return one share within $this->folder | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
// we should get exactly one result | |||
$this->assertCount(1, $data); | |||
@@ -972,12 +994,13 @@ class ApiTest extends TestCase { | |||
function testGetShareFromUnknownId() { | |||
$request = $this->createRequest(['path' => '/', 'subfiles' => 'true']); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER3); | |||
$result = $ocs->getShare(0); | |||
$this->assertFalse($result->succeeded()); | |||
$this->assertEquals(404, $result->getStatusCode()); | |||
$meta = $result->getMeta(); | |||
$this->assertEquals('Wrong share ID, share doesn\'t exist', $meta['message']); | |||
try { | |||
$ocs->getShare(0); | |||
$this->fail(); | |||
} catch (OCSNotFoundException $e) { | |||
$this->assertEquals('Wrong share ID, share doesn\'t exist', $e->getMessage()); | |||
} | |||
$ocs->cleanup(); | |||
} | |||
/** | |||
@@ -1009,10 +1032,7 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['permissions' => 1]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->updateShare($share1->getId()); | |||
$this->assertTrue($result->succeeded()); | |||
$meta = $result->getMeta(); | |||
$this->assertTrue($result->succeeded(), $meta['message']); | |||
$ocs->cleanup(); | |||
$share1 = $this->shareManager->getShareById('ocinternal:' . $share1->getId()); | |||
$this->assertEquals(1, $share1->getPermissions()); | |||
@@ -1022,16 +1042,16 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['password' => 'foo']); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->updateShare($share2->getId()); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->updateShare($share2->getId()); | |||
$ocs->cleanup(); | |||
$share2 = $this->shareManager->getShareById('ocinternal:' . $share2->getId()); | |||
$this->assertNotNull($share2->getPassword()); | |||
$request = $this->createRequest(['password' => '']); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->updateShare($share2->getId()); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->updateShare($share2->getId()); | |||
$ocs->cleanup(); | |||
$share2 = $this->shareManager->getShareById('ocinternal:' . $share2->getId()); | |||
$this->assertNull($share2->getPassword()); | |||
@@ -1056,11 +1076,13 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['permissions' => \OCP\Constants::PERMISSION_ALL]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->updateShare($share1->getId()); | |||
try { | |||
$ocs->updateShare($share1->getId()); | |||
$this->fail(); | |||
} catch (OCSBadRequestException $e) { | |||
//Updating should fail with 400 | |||
$this->assertFalse($result->succeeded()); | |||
$this->assertEquals(400, $result->getStatusCode()); | |||
} | |||
$ocs->cleanup(); | |||
//Permissions should not have changed! | |||
$share1 = $this->shareManager->getShareById('ocinternal:' . $share1->getId()); | |||
@@ -1085,7 +1107,7 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['publicUpload' => 'true']); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->updateShare($share1->getId()); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$share1 = $this->shareManager->getShareById($share1->getFullId()); | |||
$this->assertEquals( | |||
@@ -1129,7 +1151,7 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest(['expireDate' => $dateWithinRange->format('Y-m-d')]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->updateShare($share1->getId()); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$share1 = $this->shareManager->getShareById($share1->getFullId()); | |||
@@ -1139,8 +1161,13 @@ class ApiTest extends TestCase { | |||
// update expire date to a value out of range | |||
$request = $this->createRequest(['expireDate' => $dateOutOfRange->format('Y-m-d')]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->updateShare($share1->getId()); | |||
$this->assertFalse($result->succeeded()); | |||
try { | |||
$ocs->updateShare($share1->getId()); | |||
$this->fail(); | |||
} catch (OCSBadRequestException $e) { | |||
} | |||
$ocs->cleanup(); | |||
$share1 = $this->shareManager->getShareById($share1->getFullId()); | |||
@@ -1150,8 +1177,13 @@ class ApiTest extends TestCase { | |||
// Try to remove expire date | |||
$request = $this->createRequest(['expireDate' => '']); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->updateShare($share1->getId()); | |||
$this->assertFalse($result->succeeded()); | |||
try { | |||
$ocs->updateShare($share1->getId()); | |||
$this->fail(); | |||
} catch (OCSBadRequestException $e) { | |||
} | |||
$ocs->cleanup(); | |||
$share1 = $this->shareManager->getShareById($share1->getFullId()); | |||
@@ -1188,12 +1220,12 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->deleteShare($share1->getId()); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->deleteShare($share2->getId()); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$this->assertEmpty($this->shareManager->getSharesBy(self::TEST_FILES_SHARING_API_USER2, \OCP\Share::SHARE_TYPE_USER)); | |||
$this->assertEmpty($this->shareManager->getSharesBy(self::TEST_FILES_SHARING_API_USER2, \OCP\Share::SHARE_TYPE_LINK)); | |||
@@ -1225,7 +1257,7 @@ class ApiTest extends TestCase { | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2); | |||
$result = $ocs->deleteShare($share2->getId()); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$this->shareManager->deleteShare($share1); | |||
} | |||
@@ -1341,7 +1373,7 @@ class ApiTest extends TestCase { | |||
/** | |||
* @expectedException \Exception | |||
*/ | |||
public function testShareNonExisting() { | |||
public function XtestShareNonExisting() { | |||
self::loginHelper(self::TEST_FILES_SHARING_API_USER1); | |||
$id = PHP_INT_MAX - 1; | |||
@@ -1447,18 +1479,19 @@ class ApiTest extends TestCase { | |||
'expireDate' => $date, | |||
]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
if ($valid === false) { | |||
$this->assertFalse($result->succeeded()); | |||
$this->assertEquals(404, $result->getStatusCode()); | |||
$this->assertEquals('Invalid date, date format must be YYYY-MM-DD', $result->getMeta()['message']); | |||
try { | |||
$result = $ocs->createShare(); | |||
$this->assertTrue($valid); | |||
} catch (OCSNotFoundException $e) { | |||
$this->assertFalse($valid); | |||
$this->assertEquals('Invalid date, date format must be YYYY-MM-DD', $e->getMessage()); | |||
$ocs->cleanup(); | |||
return; | |||
} | |||
$ocs->cleanup(); | |||
$this->assertTrue($result->succeeded()); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
$this->assertTrue(is_string($data['token'])); | |||
$this->assertEquals($date, substr($data['expiration'], 0, 10)); | |||
@@ -1490,9 +1523,9 @@ class ApiTest extends TestCase { | |||
]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$data = $result->getData(); | |||
$data = $result->getData()['data']; | |||
$this->assertTrue(is_string($data['token'])); | |||
$this->assertEquals($date->format('Y-m-d') . ' 00:00:00', $data['expiration']); | |||
@@ -1526,16 +1559,21 @@ class ApiTest extends TestCase { | |||
'expireDate' => $date->format('Y-m-d'), | |||
]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$this->assertFalse($result->succeeded()); | |||
$this->assertEquals(404, $result->getStatusCode()); | |||
$this->assertEquals('Cannot set expiration date more than 7 days in the future', $result->getMeta()['message']); | |||
try { | |||
$ocs->createShare(); | |||
$this->fail(); | |||
} catch (OCSException $e) { | |||
$this->assertEquals(404, $e->getCode()); | |||
$this->assertEquals('Cannot set expiration date more than 7 days in the future', $e->getMessage()); | |||
} | |||
$ocs->cleanup(); | |||
$config->setAppValue('core', 'shareapi_default_expire_date', 'no'); | |||
$config->setAppValue('core', 'shareapi_enforce_expire_date', 'no'); | |||
} | |||
public function testCreatePublicLinkExpireDateInvalidPast() { | |||
public function XtestCreatePublicLinkExpireDateInvalidPast() { | |||
$config = \OC::$server->getConfig(); | |||
$date = new \DateTime(); | |||
@@ -1547,10 +1585,15 @@ class ApiTest extends TestCase { | |||
'expireDate' => $date->format('Y-m-d'), | |||
]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$this->assertFalse($result->succeeded()); | |||
$this->assertEquals(404, $result->getStatusCode()); | |||
$this->assertEquals('Expiration date is in the past', $result->getMeta()['message']); | |||
try { | |||
$result = $ocs->createShare(); | |||
$this->fail(); | |||
} catch(OCSException $e) { | |||
$this->assertEquals(404, $e->getCode()); | |||
$this->assertEquals('Expiration date is in the past', $e->getMessage()); | |||
} | |||
$ocs->cleanup(); | |||
$config->setAppValue('core', 'shareapi_default_expire_date', 'no'); | |||
$config->setAppValue('core', 'shareapi_enforce_expire_date', 'no'); | |||
@@ -1569,8 +1612,8 @@ class ApiTest extends TestCase { | |||
]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$this->assertTrue($result->succeeded()); | |||
$data = $result->getData(); | |||
$ocs->cleanup(); | |||
$data = $result->getData()['data']; | |||
$topId = $data['id']; | |||
@@ -1580,21 +1623,21 @@ class ApiTest extends TestCase { | |||
]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2); | |||
$result = $ocs->createShare(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->deleteShare($topId); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$request = $this->createRequest([ | |||
'reshares' => 'true', | |||
]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->getShares(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$this->assertEmpty($result->getData()); | |||
$this->assertEmpty($result->getData()['data']); | |||
} | |||
/** | |||
@@ -1610,8 +1653,8 @@ class ApiTest extends TestCase { | |||
]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->createShare(); | |||
$this->assertTrue($result->succeeded()); | |||
$data = $result->getData(); | |||
$ocs->cleanup(); | |||
$data = $result->getData()['data']; | |||
$topId = $data['id']; | |||
@@ -1621,20 +1664,20 @@ class ApiTest extends TestCase { | |||
]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2); | |||
$result = $ocs->createShare(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$request = $this->createRequest([]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->deleteShare($topId); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$request = $this->createRequest([ | |||
'reshares' => 'true', | |||
]); | |||
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); | |||
$result = $ocs->getShares(); | |||
$this->assertTrue($result->succeeded()); | |||
$ocs->cleanup(); | |||
$this->assertEmpty($result->getData()); | |||
$this->assertEmpty($result->getData()['data']); | |||
} | |||
} |