Skip to content
Snippets Groups Projects
Unverified Commit 5a1641be authored by Björn Schießle's avatar Björn Schießle
Browse files

move request handler for federated shares to the federated sharing app

parent 59a85a4c
No related branches found
No related tags found
No related merge requests found
......@@ -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;
......
......@@ -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,
......
<?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);
}
}
......@@ -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'),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment