diff --git a/apps/files_sharing/api/local.php b/apps/files_sharing/api/local.php index 87025998b3dbdcd44194f567a8faee0169824c16..61b8b47d2d3c8335fdb14ecfaa6e69d8e44f3395 100644 --- a/apps/files_sharing/api/local.php +++ b/apps/files_sharing/api/local.php @@ -346,6 +346,10 @@ class Local { } } } + + $data['permissions'] = $share['permissions']; + $data['expiration'] = $share['expiration']; + return new \OC_OCS_Result($data); } else { return new \OC_OCS_Result(null, 404, "couldn't share file"); diff --git a/apps/files_sharing/tests/api.php b/apps/files_sharing/tests/api.php index d0ee71cec5a28334d6fa688b1edae72fd67a054b..3809b812051668c46503b13caad5d45b870bb9b6 100644 --- a/apps/files_sharing/tests/api.php +++ b/apps/files_sharing/tests/api.php @@ -73,40 +73,108 @@ class Test_Files_Sharing_Api extends TestCase { /** * @medium */ - function testCreateShare() { + function testCreateShareUserFile() { + // simulate a post request + $_POST['path'] = $this->filename; + $_POST['shareWith'] = \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2; + $_POST['shareType'] = \OCP\Share::SHARE_TYPE_USER; + + $result = \OCA\Files_Sharing\API\Local::createShare([]); + + $this->assertTrue($result->succeeded()); + $data = $result->getData(); + $this->assertEquals(23, $data['permissions']); + $this->assertEmpty($data['expiration']); + + $share = $this->getShareFromId($data['id']); + $items = \OCP\Share::getItemShared('file', $share['item_source']); + $this->assertTrue(!empty($items)); - // share to user + $fileinfo = $this->view->getFileInfo($this->filename); + \OCP\Share::unshare('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, + \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2); + } + function testCreateShareUserFolder() { // simulate a post request - $_POST['path'] = $this->filename; + $_POST['path'] = $this->folder; $_POST['shareWith'] = \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2; $_POST['shareType'] = \OCP\Share::SHARE_TYPE_USER; - $result = \OCA\Files_Sharing\API\Local::createShare(array()); + $result = \OCA\Files_Sharing\API\Local::createShare([]); $this->assertTrue($result->succeeded()); $data = $result->getData(); + $this->assertEquals(31, $data['permissions']); + $this->assertEmpty($data['expiration']); $share = $this->getShareFromId($data['id']); + $items = \OCP\Share::getItemShared('file', $share['item_source']); + $this->assertTrue(!empty($items)); + + $fileinfo = $this->view->getFileInfo($this->folder); + \OCP\Share::unshare('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, + \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2); + } + + + function testCreateShareGroupFile() { + // simulate a post request + $_POST['path'] = $this->filename; + $_POST['shareWith'] = \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_GROUP1; + $_POST['shareType'] = \OCP\Share::SHARE_TYPE_GROUP; + + $result = \OCA\Files_Sharing\API\Local::createShare([]); + $this->assertTrue($result->succeeded()); + $data = $result->getData(); + $this->assertEquals(23, $data['permissions']); + $this->assertEmpty($data['expiration']); + + $share = $this->getShareFromId($data['id']); $items = \OCP\Share::getItemShared('file', $share['item_source']); + $this->assertTrue(!empty($items)); + + $fileinfo = $this->view->getFileInfo($this->filename); + \OCP\Share::unshare('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, + \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_GROUP1); + } + + function testCreateShareGroupFolder() { + // simulate a post request + $_POST['path'] = $this->folder; + $_POST['shareWith'] = \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_GROUP1; + $_POST['shareType'] = \OCP\Share::SHARE_TYPE_GROUP; + + $result = \OCA\Files_Sharing\API\Local::createShare([]); + + $this->assertTrue($result->succeeded()); + $data = $result->getData(); + $this->assertEquals(31, $data['permissions']); + $this->assertEmpty($data['expiration']); + $share = $this->getShareFromId($data['id']); + $items = \OCP\Share::getItemShared('file', $share['item_source']); $this->assertTrue(!empty($items)); - // share link + $fileinfo = $this->view->getFileInfo($this->folder); + \OCP\Share::unshare('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, + \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_GROUP1); + } + public function testCreateShareLink() { // simulate a post request $_POST['path'] = $this->folder; $_POST['shareType'] = \OCP\Share::SHARE_TYPE_LINK; - $result = \OCA\Files_Sharing\API\Local::createShare(array()); + $result = \OCA\Files_Sharing\API\Local::createShare([]); // check if API call was successful $this->assertTrue($result->succeeded()); $data = $result->getData(); - - // check if we have a token + $this->assertEquals(1, $data['permissions']); + $this->assertEmpty($data['expiration']); $this->assertTrue(is_string($data['token'])); // check for correct link @@ -115,18 +183,39 @@ class Test_Files_Sharing_Api extends TestCase { $share = $this->getShareFromId($data['id']); - $items = \OCP\Share::getItemShared('file', $share['item_source']); - $this->assertTrue(!empty($items)); - $fileinfo = $this->view->getFileInfo($this->filename); + $fileinfo = $this->view->getFileInfo($this->folder); + \OCP\Share::unshare('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, null); + } - \OCP\Share::unshare('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2); + public function testCreateShareLinkPublicUpload() { + // simulate a post request + $_POST['path'] = $this->folder; + $_POST['shareType'] = \OCP\Share::SHARE_TYPE_LINK; + $_POST['publicUpload'] = 'true'; - $fileinfo = $this->view->getFileInfo($this->folder); + $result = \OCA\Files_Sharing\API\Local::createShare(array()); + + // check if API call was successful + $this->assertTrue($result->succeeded()); + + $data = $result->getData(); + $this->assertEquals(7, $data['permissions']); + $this->assertEmpty($data['expiration']); + $this->assertTrue(is_string($data['token'])); + // check for correct link + $url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']); + $this->assertEquals($url, $data['url']); + + + $share = $this->getShareFromId($data['id']); + $items = \OCP\Share::getItemShared('file', $share['item_source']); + $this->assertTrue(!empty($items)); + + $fileinfo = $this->view->getFileInfo($this->folder); \OCP\Share::unshare('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, null); } @@ -287,7 +376,7 @@ class Test_Files_Sharing_Api extends TestCase { /** * @medium - * @depends testCreateShare + * @depends testCreateShareUserFile */ function testGetAllShares() { @@ -334,7 +423,7 @@ class Test_Files_Sharing_Api extends TestCase { /** * @medium - * @depends testCreateShare + * @depends testCreateShareLink */ function testPublicLinkUrl() { // simulate a post request @@ -379,7 +468,8 @@ class Test_Files_Sharing_Api extends TestCase { /** * @medium - * @depends testCreateShare + * @depends testCreateShareUserFile + * @depends testCreateShareLink */ function testGetShareFromSource() { @@ -409,7 +499,8 @@ class Test_Files_Sharing_Api extends TestCase { /** * @medium - * @depends testCreateShare + * @depends testCreateShareUserFile + * @depends testCreateShareLink */ function testGetShareFromSourceWithReshares() { @@ -463,7 +554,7 @@ class Test_Files_Sharing_Api extends TestCase { /** * @medium - * @depends testCreateShare + * @depends testCreateShareUserFile */ function testGetShareFromId() { @@ -911,7 +1002,8 @@ class Test_Files_Sharing_Api extends TestCase { /** * @medium - * @depends testCreateShare + * @depends testCreateShareUserFile + * @depends testCreateShareLink */ function testUpdateShare() { @@ -1037,7 +1129,7 @@ class Test_Files_Sharing_Api extends TestCase { /** * @medium - * @depends testCreateShare + * @depends testCreateShareUserFile */ public function testUpdateShareInvalidPermissions() { @@ -1232,7 +1324,7 @@ class Test_Files_Sharing_Api extends TestCase { /** * @medium - * @depends testCreateShare + * @depends testCreateShareUserFile */ function testDeleteShare() { @@ -1526,6 +1618,7 @@ class Test_Files_Sharing_Api extends TestCase { $data = $result->getData(); $this->assertTrue(is_string($data['token'])); + $this->assertEquals($date, substr($data['expiration'], 0, 10)); // check for correct link $url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']); @@ -1564,6 +1657,7 @@ class Test_Files_Sharing_Api extends TestCase { $data = $result->getData(); $this->assertTrue(is_string($data['token'])); + $this->assertEquals($date->format('Y-m-d') . ' 00:00:00', $data['expiration']); // check for correct link $url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']);