diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-09-01 12:29:02 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-09-01 12:29:02 +0200 |
commit | 0d4562c938e5dd2bb6b3a0d7fd9a446464cbcfe7 (patch) | |
tree | 07f10e6895ca1db4b9608155a43d360d4484385b | |
parent | 85b62c7d82695dd4cd1c73e7c1d81269ec17170b (diff) | |
parent | d54b497ade049bb1dc2394d8e989827057e20acb (diff) | |
download | nextcloud-server-0d4562c938e5dd2bb6b3a0d7fd9a446464cbcfe7.tar.gz nextcloud-server-0d4562c938e5dd2bb6b3a0d7fd9a446464cbcfe7.zip |
Merge pull request #18631 from owncloud/more_ocs_share_data
Return permissions and expiration on create share responses
-rw-r--r-- | apps/files_sharing/api/local.php | 4 | ||||
-rw-r--r-- | apps/files_sharing/tests/api.php | 138 |
2 files changed, 120 insertions, 22 deletions
diff --git a/apps/files_sharing/api/local.php b/apps/files_sharing/api/local.php index 87025998b3d..61b8b47d2d3 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 d0ee71cec5a..3809b812051 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']); |