summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files_sharing/api/local.php10
-rw-r--r--apps/files_sharing/tests/api.php45
2 files changed, 55 insertions, 0 deletions
diff --git a/apps/files_sharing/api/local.php b/apps/files_sharing/api/local.php
index 03812800c17..706cac24ff9 100644
--- a/apps/files_sharing/api/local.php
+++ b/apps/files_sharing/api/local.php
@@ -70,6 +70,10 @@ class Local {
}
$share['icon'] = substr(\OC_Helper::mimetypeIcon($share['mimetype']), 0, -3) . 'svg';
}
+
+ if (!is_null($share['token'])) {
+ $share['url'] = \OC::$server->getURLGenerator()->linkToRouteAbsolute('files_sharing.sharecontroller.showShare', ['token' => $share['token']]);
+ }
}
return new \OC_OCS_Result($shares);
}
@@ -142,6 +146,12 @@ class Local {
if ($shares === null || empty($shares)) {
return new \OC_OCS_Result(null, 404, 'share doesn\'t exist');
} else {
+ foreach ($shares as &$share) {
+ if (!is_null($share['token'])) {
+ $share['url'] = \OC::$server->getURLGenerator()->linkToRouteAbsolute('files_sharing.sharecontroller.showShare', ['token' => $share['token']]);
+ }
+ }
+
return new \OC_OCS_Result($shares);
}
}
diff --git a/apps/files_sharing/tests/api.php b/apps/files_sharing/tests/api.php
index 44c6b1dc4b9..f203a4e3f81 100644
--- a/apps/files_sharing/tests/api.php
+++ b/apps/files_sharing/tests/api.php
@@ -311,6 +311,51 @@ class Test_Files_Sharing_Api extends TestCase {
* @medium
* @depends testCreateShare
*/
+ function testPublicLinkUrl() {
+ // simulate a post request
+ $_POST['path'] = $this->folder;
+ $_POST['shareType'] = \OCP\Share::SHARE_TYPE_LINK;
+
+ $result = \OCA\Files_Sharing\API\Local::createShare([]);
+ $this->assertTrue($result->succeeded());
+ $data = $result->getData();
+
+ // check if we have a token
+ $this->assertTrue(is_string($data['token']));
+ $id = $data['id'];
+
+ // check for correct link
+ $url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']);
+ $this->assertEquals($url, $data['url']);
+
+ // check for link in getall shares
+ $result = \OCA\Files_Sharing\API\Local::getAllShares([]);
+ $this->assertTrue($result->succeeded());
+ $data = $result->getData();
+ $this->assertEquals($url, current($data)['url']);
+
+ // check for path
+ $_GET['path'] = $this->folder;
+ $result = \OCA\Files_Sharing\API\Local::getAllShares([]);
+ $this->assertTrue($result->succeeded());
+ $data = $result->getData();
+ $this->assertEquals($url, current($data)['url']);
+
+ // check in share id
+ $result = \OCA\Files_Sharing\API\Local::getShare(['id' => $id]);
+ $this->assertTrue($result->succeeded());
+ $data = $result->getData();
+ $this->assertEquals($url, current($data)['url']);
+
+ //Clean up share
+ $fileinfo = $this->view->getFileInfo($this->folder);
+ \OCP\Share::unshare('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, null);
+ }
+
+ /**
+ * @medium
+ * @depends testCreateShare
+ */
function testGetShareFromSource() {
$fileInfo = $this->view->getFileInfo($this->filename);