summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2015-09-01 12:29:02 +0200
committerVincent Petry <pvince81@owncloud.com>2015-09-01 12:29:02 +0200
commit0d4562c938e5dd2bb6b3a0d7fd9a446464cbcfe7 (patch)
tree07f10e6895ca1db4b9608155a43d360d4484385b
parent85b62c7d82695dd4cd1c73e7c1d81269ec17170b (diff)
parentd54b497ade049bb1dc2394d8e989827057e20acb (diff)
downloadnextcloud-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.php4
-rw-r--r--apps/files_sharing/tests/api.php138
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']);