diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2016-02-09 15:33:47 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2016-02-09 15:33:47 +0100 |
commit | 1199b539f2813d127195bf1b63e81fcfe8dab19b (patch) | |
tree | cf3e4ed8e040027e351063a42e31c428d8744ff2 | |
parent | 232bb75329c251671d7ece910148deff5cf47b07 (diff) | |
parent | 76d9586339d59f7e2aaa2aecce45df7e324e8532 (diff) | |
download | nextcloud-server-1199b539f2813d127195bf1b63e81fcfe8dab19b.tar.gz nextcloud-server-1199b539f2813d127195bf1b63e81fcfe8dab19b.zip |
Merge pull request #21773 from owncloud/files_external-list-authtype
Show the proper auth identifier when listing mounts as json
-rw-r--r-- | apps/files_external/command/import.php | 4 | ||||
-rw-r--r-- | apps/files_external/command/listcommand.php | 2 | ||||
-rw-r--r-- | apps/files_external/tests/command/listcommandtest.php | 69 |
3 files changed, 72 insertions, 3 deletions
diff --git a/apps/files_external/command/import.php b/apps/files_external/command/import.php index fe27051359c..28032c207b5 100644 --- a/apps/files_external/command/import.php +++ b/apps/files_external/command/import.php @@ -194,8 +194,8 @@ class Import extends Base { $mount = new StorageConfig($data['mount_id']); $mount->setMountPoint($data['mount_point']); $mount->setBackend($this->getBackendByClass($data['storage'])); - $authBackends = $this->backendService->getAuthMechanismsByScheme([$data['authentication_type']]); - $mount->setAuthMechanism(current($authBackends)); + $authBackend = $this->backendService->getAuthMechanism($data['authentication_type']); + $mount->setAuthMechanism($authBackend); $mount->setBackendOptions($data['configuration']); $mount->setMountOptions($data['options']); $mount->setApplicableUsers(isset($data['applicable_users']) ? $data['applicable_users'] : []); diff --git a/apps/files_external/command/listcommand.php b/apps/files_external/command/listcommand.php index c978ae5cfcb..5a0794be4c5 100644 --- a/apps/files_external/command/listcommand.php +++ b/apps/files_external/command/listcommand.php @@ -146,7 +146,7 @@ class ListCommand extends Base { $config->getId(), $config->getMountPoint(), $config->getBackend()->getStorageClass(), - $config->getAuthMechanism()->getScheme(), + $config->getAuthMechanism()->getIdentifier(), $config->getBackendOptions(), $config->getMountOptions() ]; diff --git a/apps/files_external/tests/command/listcommandtest.php b/apps/files_external/tests/command/listcommandtest.php new file mode 100644 index 00000000000..338ddb7593e --- /dev/null +++ b/apps/files_external/tests/command/listcommandtest.php @@ -0,0 +1,69 @@ +<?php +/** + * @author Robin Appelman <icewind@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\Files_External\Tests\Command; + +use OCA\Files_External\Command\ListCommand; +use OCA\Files_External\Lib\Auth\NullMechanism; +use OCA\Files_External\Lib\Auth\Password\Password; +use OCA\Files_External\Lib\Auth\Password\UserProvided; +use OCA\Files_External\Lib\Backend\Local; +use OCA\Files_external\Lib\StorageConfig; +use Symfony\Component\Console\Output\BufferedOutput; + +class ListCommandTest extends CommandTest { + /** + * @return \OCA\Files_External\Command\ListCommand|\PHPUnit_Framework_MockObject_MockObject + */ + private function getInstance() { + /** @var \OCA\Files_external\Service\GlobalStoragesService|\PHPUnit_Framework_MockObject_MockObject $globalService */ + $globalService = $this->getMock('\OCA\Files_external\Service\GlobalStoragesService', null, [], '', false); + /** @var \OCA\Files_external\Service\UserStoragesService|\PHPUnit_Framework_MockObject_MockObject $userService */ + $userService = $this->getMock('\OCA\Files_external\Service\UserStoragesService', null, [], '', false); + /** @var \OCP\IUserManager|\PHPUnit_Framework_MockObject_MockObject $userManager */ + $userManager = $this->getMock('\OCP\IUserManager'); + /** @var \OCP\IUserSession|\PHPUnit_Framework_MockObject_MockObject $userSession */ + $userSession = $this->getMock('\OCP\IUserSession'); + + return new ListCommand($globalService, $userService, $userSession, $userManager); + } + + public function testListAuthIdentifier() { + $l10n = $this->getMock('\OC_L10N', null, [], '', false); + $credentialsManager = $this->getMock('\OCP\Security\ICredentialsManager'); + $instance = $this->getInstance(); + $mount1 = new StorageConfig(); + $mount1->setAuthMechanism(new Password($l10n)); + $mount1->setBackend(new Local($l10n, new NullMechanism($l10n))); + $mount2 = new StorageConfig(); + $mount2->setAuthMechanism(new UserProvided($l10n, $credentialsManager)); + $mount2->setBackend(new Local($l10n, new NullMechanism($l10n))); + $input = $this->getInput($instance, [], [ + 'output' => 'json' + ]); + $output = new BufferedOutput(); + + $instance->listMounts('', [$mount1, $mount2], $input, $output); + $output = json_decode($output->fetch(), true); + + $this->assertNotEquals($output[0]['authentication_type'], $output[1]['authentication_type']); + } +} |