Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/federatedfilesharing/lib/RequestHandler.php (renamed from apps/files_sharing/api/server2server.php)11
-rw-r--r--apps/federatedfilesharing/tests/RequestHandlerTest.php (renamed from apps/files_sharing/tests/server2server.php)21
-rw-r--r--apps/federatedfilesharing/tests/TestCase.php133
-rw-r--r--ocs/routes.php2
4 files changed, 156 insertions, 11 deletions
diff --git a/apps/files_sharing/api/server2server.php b/apps/federatedfilesharing/lib/RequestHandler.php
index 034ec5105e4..65925c3823c 100644
--- a/apps/files_sharing/api/server2server.php
+++ b/apps/federatedfilesharing/lib/RequestHandler.php
@@ -23,14 +23,21 @@
*
*/
-namespace OCA\Files_Sharing\API;
+namespace OCA\FederatedFileSharing;
use OCA\FederatedFileSharing\DiscoveryManager;
use OCA\FederatedFileSharing\FederatedShareProvider;
use OCA\Files_Sharing\Activity;
use OCP\Files\NotFoundException;
-class Server2Server {
+/**
+ * Class RequestHandler
+ *
+ * handles OCS Request to the federated share API
+ *
+ * @package OCA\FederatedFileSharing\API
+ */
+class RequestHandler {
/** @var FederatedShareProvider */
private $federatedShareProvider;
diff --git a/apps/files_sharing/tests/server2server.php b/apps/federatedfilesharing/tests/RequestHandlerTest.php
index 1c8b5ed7a17..ef0074dc039 100644
--- a/apps/files_sharing/tests/server2server.php
+++ b/apps/federatedfilesharing/tests/RequestHandlerTest.php
@@ -23,14 +23,19 @@
*
*/
-use OCA\Files_Sharing\Tests\TestCase;
+namespace OCA\FederatedFileSharing\Tests;
+
+use OC\Files\Filesystem;
+use OCA\FederatedFileSharing\DiscoveryManager;
+use OCA\FederatedFileSharing\RequestHandler;
/**
- * Class Test_Files_Sharing_Api
+ * Class RequestHandlerTest
*
+ * @package OCA\FederatedFileSharing\Tests
* @group DB
*/
-class Test_Files_Sharing_S2S_OCS_API extends TestCase {
+class RequestHandlerTest extends TestCase {
const TEST_FOLDER_NAME = '/folder_share_api_test';
@@ -69,7 +74,7 @@ class Test_Files_Sharing_S2S_OCS_API extends TestCase {
$this->registerHttpHelper($httpHelperMock);
- $this->s2s = new \OCA\Files_Sharing\API\Server2Server($this->federatedShareProvider);
+ $this->s2s = new RequestHandler($this->federatedShareProvider);
$this->connection = \OC::$server->getDatabaseConnection();
}
@@ -194,14 +199,14 @@ class Test_Files_Sharing_S2S_OCS_API extends TestCase {
function testDeleteUser($toDelete, $expected, $remainingUsers) {
$this->createDummyS2SShares();
- $discoveryManager = new \OCA\FederatedFileSharing\DiscoveryManager(
+ $discoveryManager = new DiscoveryManager(
\OC::$server->getMemCacheFactory(),
\OC::$server->getHTTPClientService()
);
- $manager = new OCA\Files_Sharing\External\Manager(
+ $manager = new \OCA\Files_Sharing\External\Manager(
\OC::$server->getDatabaseConnection(),
- \OC\Files\Filesystem::getMountManager(),
- \OC\Files\Filesystem::getLoader(),
+ Filesystem::getMountManager(),
+ Filesystem::getLoader(),
\OC::$server->getHTTPHelper(),
\OC::$server->getNotificationManager(),
$discoveryManager,
diff --git a/apps/federatedfilesharing/tests/TestCase.php b/apps/federatedfilesharing/tests/TestCase.php
new file mode 100644
index 00000000000..1e2e02394c4
--- /dev/null
+++ b/apps/federatedfilesharing/tests/TestCase.php
@@ -0,0 +1,133 @@
+<?php
+/**
+ * @author Björn Schießle <schiessle@owncloud.com>
+ * @author Joas Schilling <nickvergessen@owncloud.com>
+ * @author Jörn Friedrich Dreyer <jfd@butonic.de>
+ * @author Lukas Reschke <lukas@owncloud.com>
+ * @author Morris Jobke <hey@morrisjobke.de>
+ * @author Robin Appelman <icewind@owncloud.com>
+ * @author Robin McCorkell <robin@mccorkell.me.uk>
+ * @author Roeland Jago Douma <rullzer@owncloud.com>
+ * @author Thomas Müller <thomas.mueller@tmit.eu>
+ * @author Vincent Petry <pvince81@owncloud.com>
+ *
+ * @copyright Copyright (c) 2016, 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\FederatedFileSharing\Tests;
+
+use OC\Files\Filesystem;
+use OCA\Files\Share;
+use OCA\Files_Sharing\Appinfo\Application;
+
+/**
+ * Class Test_Files_Sharing_Base
+ *
+ * @group DB
+ *
+ * Base class for sharing tests.
+ */
+abstract class TestCase extends \Test\TestCase {
+
+ const TEST_FILES_SHARING_API_USER1 = "test-share-user1";
+ const TEST_FILES_SHARING_API_USER2 = "test-share-user2";
+
+ public static function setUpBeforeClass() {
+ parent::setUpBeforeClass();
+
+ // reset backend
+ \OC_User::clearBackends();
+ \OC_Group::clearBackends();
+
+ // create users
+ $backend = new \Test\Util\User\Dummy();
+ \OC_User::useBackend($backend);
+ $backend->createUser(self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER1);
+ $backend->createUser(self::TEST_FILES_SHARING_API_USER2, self::TEST_FILES_SHARING_API_USER2);
+ }
+
+ protected function setUp() {
+ parent::setUp();
+
+ //login as user1
+ self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
+ }
+
+ public static function tearDownAfterClass() {
+ // cleanup users
+ $user = \OC::$server->getUserManager()->get(self::TEST_FILES_SHARING_API_USER1);
+ if ($user !== null) {
+ $user->delete();
+ }
+ $user = \OC::$server->getUserManager()->get(self::TEST_FILES_SHARING_API_USER2);
+ if ($user !== null) {
+ $user->delete();
+ }
+
+ \OC_Util::tearDownFS();
+ \OC_User::setUserId('');
+ Filesystem::tearDown();
+
+ // reset backend
+ \OC_User::clearBackends();
+ \OC_User::useBackend('database');
+ \OC_Group::clearBackends();
+ \OC_Group::useBackend(new \OC_Group_Database());
+
+ parent::tearDownAfterClass();
+ }
+
+ /**
+ * @param string $user
+ * @param bool $create
+ * @param bool $password
+ */
+ protected static function loginHelper($user, $create = false, $password = false) {
+
+ if ($password === false) {
+ $password = $user;
+ }
+
+ if ($create) {
+ \OC::$server->getUserManager()->createUser($user, $password);
+ \OC_Group::createGroup('group');
+ \OC_Group::addToGroup($user, 'group');
+ }
+
+ self::resetStorage();
+
+ \OC_Util::tearDownFS();
+ \OC::$server->getUserSession()->setUser(null);
+ \OC\Files\Filesystem::tearDown();
+ \OC::$server->getUserSession()->login($user, $password);
+ \OC::$server->getUserFolder($user);
+
+ \OC_Util::setupFS($user);
+ }
+
+ /**
+ * reset init status for the share storage
+ */
+ protected static function resetStorage() {
+ $storage = new \ReflectionClass('\OC\Files\Storage\Shared');
+ $isInitialized = $storage->getProperty('initialized');
+ $isInitialized->setAccessible(true);
+ $isInitialized->setValue($storage, false);
+ $isInitialized->setAccessible(false);
+ }
+
+}
diff --git a/ocs/routes.php b/ocs/routes.php
index af9c3e74137..24af2460881 100644
--- a/ocs/routes.php
+++ b/ocs/routes.php
@@ -100,7 +100,7 @@ API::register(
// Server-to-Server Sharing
if (\OC::$server->getAppManager()->isEnabledForUser('files_sharing')) {
$federatedSharingApp = new \OCA\FederatedFileSharing\AppInfo\Application('federatedfilesharing');
- $s2s = new \OCA\Files_Sharing\API\Server2Server($federatedSharingApp->getFederatedShareProvider());
+ $s2s = new OCA\FederatedFileSharing\RequestHandler($federatedSharingApp->getFederatedShareProvider());
API::register('post',
'/cloud/shares',
array($s2s, 'createShare'),