summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorBjoern Schiessle <schiessle@owncloud.com>2014-02-25 15:28:21 +0100
committerBjoern Schiessle <schiessle@owncloud.com>2014-02-25 17:27:23 +0100
commite3f676e00982458d9f04ce0b71e60a273f3d67c3 (patch)
tree8433045569ad32b07cd4e12a3de2933d438dd790 /apps
parent9b4af31bac977cb788a6f4a013d32ba0a21437f0 (diff)
downloadnextcloud-server-e3f676e00982458d9f04ce0b71e60a273f3d67c3.tar.gz
nextcloud-server-e3f676e00982458d9f04ce0b71e60a273f3d67c3.zip
fix path in sharing results if it is a file in the Shared folder
Diffstat (limited to 'apps')
-rw-r--r--apps/files_sharing/tests/api.php68
-rw-r--r--apps/files_sharing/tests/base.php1
2 files changed, 69 insertions, 0 deletions
diff --git a/apps/files_sharing/tests/api.php b/apps/files_sharing/tests/api.php
index 1278e0c4d1f..0d3d9b98b2e 100644
--- a/apps/files_sharing/tests/api.php
+++ b/apps/files_sharing/tests/api.php
@@ -33,13 +33,16 @@ class Test_Files_Sharing_Api extends Test_Files_Sharing_Base {
parent::setUp();
$this->folder = '/folder_share_api_test';
+ $this->subfolder = '/subfolder_share_api_test';
$this->filename = 'share-api-test.txt';
// save file with content
$this->view->file_put_contents($this->filename, $this->data);
$this->view->mkdir($this->folder);
+ $this->view->mkdir($this->folder . '/' . $this->subfolder);
$this->view->file_put_contents($this->folder.'/'.$this->filename, $this->data);
+ $this->view->file_put_contents($this->folder.'/' . $this->subfolder . '/' .$this->filename, $this->data);
}
function tearDown() {
@@ -287,6 +290,71 @@ class Test_Files_Sharing_Api extends Test_Files_Sharing_Base {
}
/**
+ * @brief share a folder, than reshare a file within the shared folder and check if we construct the correct path
+ * @medium
+ */
+ function testGetShareFromFolderReshares() {
+
+ self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
+
+ $fileInfo1 = $this->view->getFileInfo($this->folder);
+ $fileInfo2 = $this->view->getFileInfo($this->folder.'/'.$this->filename);
+ $fileInfo3 = $this->view->getFileInfo($this->folder.'/' . $this->subfolder . '/' .$this->filename);
+
+ // share root folder to user2
+ $result = \OCP\Share::shareItem('folder', $fileInfo1['fileid'], \OCP\Share::SHARE_TYPE_USER,
+ \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2, 31);
+
+ // share was successful?
+ $this->assertTrue($result);
+
+ // login as user2
+ self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
+
+ // share file in root folder
+ $result = \OCP\Share::shareItem('file', $fileInfo2['fileid'], \OCP\Share::SHARE_TYPE_LINK, null, 1);
+ // share was successful?
+ $this->assertTrue(is_string($result));
+
+ // share file in subfolder
+ $result = \OCP\Share::shareItem('file', $fileInfo3['fileid'], \OCP\Share::SHARE_TYPE_LINK, null, 1);
+ // share was successful?
+ $this->assertTrue(is_string($result));
+
+ $testValues=array(
+ array('query' => 'Shared/' . $this->folder,
+ 'expectedResult' => '/Shared' . $this->folder . '/' . $this->filename),
+ array('query' => 'Shared/' . $this->folder . $this->subfolder,
+ 'expectedResult' => '/Shared' . $this->folder . $this->subfolder . '/' . $this->filename),
+ );
+ foreach ($testValues as $value) {
+
+ $_GET['path'] = $value['query'];
+ $_GET['subfiles'] = 'true';
+
+ $result = Share\Api::getAllShares(array());
+
+ $this->assertTrue($result->succeeded());
+
+ // test should return one share within $this->folder
+ $data = $result->getData();
+
+ $this->assertEquals($value['expectedResult'], $data[0]['path']);
+ }
+
+ // cleanup
+
+ \OCP\Share::unshare('file', $fileInfo2['fileid'], \OCP\Share::SHARE_TYPE_LINK, null);
+ \OCP\Share::unshare('file', $fileInfo3['fileid'], \OCP\Share::SHARE_TYPE_LINK, null);
+
+ self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
+
+ \OCP\Share::unshare('folder', $fileInfo1['fileid'], \OCP\Share::SHARE_TYPE_USER,
+ \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2);
+
+ }
+
+ /**
* @medium
*/
function testGetShareFromUnknownId() {
diff --git a/apps/files_sharing/tests/base.php b/apps/files_sharing/tests/base.php
index 3e283271f5d..d44972d01f1 100644
--- a/apps/files_sharing/tests/base.php
+++ b/apps/files_sharing/tests/base.php
@@ -43,6 +43,7 @@ abstract class Test_Files_Sharing_Base extends \PHPUnit_Framework_TestCase {
*/
public $view;
public $folder;
+ public $subfolder;
public static function setUpBeforeClass() {
// reset backend