aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/tests
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_sharing/tests')
-rw-r--r--apps/files_sharing/tests/api.php18
-rw-r--r--apps/files_sharing/tests/external/manager.php142
-rw-r--r--apps/files_sharing/tests/sharedstorage.php3
3 files changed, 161 insertions, 2 deletions
diff --git a/apps/files_sharing/tests/api.php b/apps/files_sharing/tests/api.php
index 9256f9bcc85..371c94a8c88 100644
--- a/apps/files_sharing/tests/api.php
+++ b/apps/files_sharing/tests/api.php
@@ -1079,6 +1079,24 @@ class Test_Files_Sharing_Api extends TestCase {
$this->assertTrue(is_array($updatedLinkShare));
$this->assertEquals($dateWithinRange->format('Y-m-d') . ' 00:00:00', $updatedLinkShare['expiration']);
+
+ // Try to remove expire date
+ $params = array();
+ $params['id'] = $linkShare['id'];
+ $params['_put'] = ['expireDate' => ''];
+
+ $result = \OCA\Files_Sharing\API\Local::updateShare($params);
+
+ $this->assertFalse($result->succeeded());
+
+ $items = \OCP\Share::getItemShared('file', $linkShare['file_source']);
+
+ $updatedLinkShare = reset($items);
+
+ // date shouldn't be changed
+ $this->assertTrue(is_array($updatedLinkShare));
+ $this->assertEquals($dateWithinRange->format('Y-m-d') . ' 00:00:00', $updatedLinkShare['expiration']);
+
// cleanup
$config->setAppValue('core', 'shareapi_default_expire_date', 'no');
$config->setAppValue('core', 'shareapi_enforce_expire_date', 'no');
diff --git a/apps/files_sharing/tests/external/manager.php b/apps/files_sharing/tests/external/manager.php
new file mode 100644
index 00000000000..dcb3dfba692
--- /dev/null
+++ b/apps/files_sharing/tests/external/manager.php
@@ -0,0 +1,142 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+namespace OCA\Files_sharing\Tests\External;
+
+use OC\Files\Storage\StorageFactory;
+use Test\TestCase;
+
+class Manager extends TestCase {
+ private $uid;
+
+ /**
+ * @var \OC\Files\Mount\Manager
+ */
+ private $mountManager;
+
+ /**
+ * @var \OCA\Files_Sharing\External\Manager
+ */
+ private $instance;
+
+ public function setUp() {
+ $this->uid = uniqid();
+ $this->mountManager = new \OC\Files\Mount\Manager();
+ $this->instance = new \OCA\Files_Sharing\External\Manager(\OC::$server->getDatabaseConnection(),
+ $this->mountManager, new StorageFactory(), \OC::$server->getHTTPHelper(), $this->uid);
+ }
+
+ public function tearDown() {
+ $this->instance->removeUserShares($this->uid);
+ }
+
+ private function getFullPath($path) {
+ return '/' . $this->uid . '/files' . $path;
+ }
+
+ private function assertMount($mountPoint) {
+ $mountPoint = rtrim($mountPoint, '/');
+ $mount = $this->mountManager->find($this->getFullPath($mountPoint));
+ $this->assertInstanceOf('\OCP\Files\Mount\IMountPoint', $mount);
+ $this->assertEquals($this->getFullPath($mountPoint), rtrim($mount->getMountPoint(), '/'));
+ $storage = $mount->getStorage();
+ $this->assertInstanceOf('\OCA\Files_Sharing\External\Storage', $storage);
+ }
+
+ private function assertNotMount($mountPoint) {
+ $mountPoint = rtrim($mountPoint, '/');
+ $mount = $this->mountManager->find($this->getFullPath($mountPoint));
+ if ($mount) {
+ $this->assertInstanceOf('\OCP\Files\Mount\IMountPoint', $mount);
+ $this->assertNotEquals($this->getFullPath($mountPoint), rtrim($mount->getMountPoint(), '/'));
+ } else {
+ $this->assertNull($mount);
+ }
+ }
+
+ public function testAddBasic() {
+ $this->instance->addShare('http://example.com', 'foo', 'bar', 'example', 'me', true);
+ \Test_Helper::invokePrivate($this->instance, 'setupMounts');
+ $this->assertMount('/example');
+ }
+
+ public function testAddBasicEmptyPassword() {
+ $this->instance->addShare('http://example.com', 'foo', '', 'example', 'me', true);
+ \Test_Helper::invokePrivate($this->instance, 'setupMounts');
+ $this->assertMount('/example');
+ }
+
+ public function testAddNotAcceptedShare() {
+ $this->instance->addShare('http://example.com', 'foo', 'bar', 'example', 'me', false);
+ \Test_Helper::invokePrivate($this->instance, 'setupMounts');
+ $this->assertNotMount('/example');
+ }
+
+ public function testAcceptMount() {
+ $this->instance->addShare('http://example.com', 'foo', 'bar', 'example', 'me', false);
+ $open = $this->instance->getOpenShares();
+ $this->assertCount(1, $open);
+ $this->instance->acceptShare($open[0]['id']);
+ $this->assertEquals([], $this->instance->getOpenShares());
+ \Test_Helper::invokePrivate($this->instance, 'setupMounts');
+ $this->assertMount('/example');
+ }
+
+ public function testDeclineMount() {
+ $this->instance->addShare('http://example.com', 'foo', 'bar', 'example', 'me', false);
+ $open = $this->instance->getOpenShares();
+ $this->assertCount(1, $open);
+ $this->instance->declineShare($open[0]['id']);
+ $this->assertEquals([], $this->instance->getOpenShares());
+ \Test_Helper::invokePrivate($this->instance, 'setupMounts');
+ $this->assertNotMount('/example');
+ }
+
+ public function testSetMountPoint() {
+ $this->instance->addShare('http://example.com', 'foo', 'bar', 'example', 'me', true);
+ \Test_Helper::invokePrivate($this->instance, 'setupMounts');
+ $this->assertMount('/example');
+ $this->instance->setMountPoint($this->getFullPath('/example'), $this->getFullPath('/renamed'));
+ $this->mountManager->clear();
+ \Test_Helper::invokePrivate($this->instance, 'setupMounts');
+ $this->assertMount('/renamed');
+ $this->assertNotMount('/example');
+ }
+
+ public function testRemoveShare() {
+ $this->instance->addShare('http://example.com', 'foo', 'bar', 'example', 'me', true);
+ \Test_Helper::invokePrivate($this->instance, 'setupMounts');
+ $this->assertMount('/example');
+ $this->instance->removeShare($this->getFullPath('/example'));
+ $this->mountManager->clear();
+ \Test_Helper::invokePrivate($this->instance, 'setupMounts');
+ $this->assertNotMount('/example');
+ }
+
+ public function testRemoveShareForUser() {
+ $this->instance->addShare('http://example.com', 'foo', 'bar', 'example', 'me', true);
+ \Test_Helper::invokePrivate($this->instance, 'setupMounts');
+ $this->assertMount('/example');
+ $this->instance->removeUserShares($this->uid);
+ $this->mountManager->clear();
+ \Test_Helper::invokePrivate($this->instance, 'setupMounts');
+ $this->assertNotMount('/example');
+ }
+}
diff --git a/apps/files_sharing/tests/sharedstorage.php b/apps/files_sharing/tests/sharedstorage.php
index 2959b9aacfb..46f75b488b5 100644
--- a/apps/files_sharing/tests/sharedstorage.php
+++ b/apps/files_sharing/tests/sharedstorage.php
@@ -182,9 +182,8 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase {
// for the share root we expect:
// the shared permissions (1)
// the delete permission (8), to enable unshare
- // the update permission (2), to allow renaming of the mount point
$rootInfo = \OC\Files\Filesystem::getFileInfo($this->folder);
- $this->assertSame(11, $rootInfo->getPermissions());
+ $this->assertSame(9, $rootInfo->getPermissions());
// for the file within the shared folder we expect:
// the shared permissions (1)