diff --git a/apps/files_external/tests/command/listcommandtest.php b/apps/files_external/tests/command/listcommandtest.php new file mode 100644 index 0000000000..338ddb7593 --- /dev/null +++ b/apps/files_external/tests/command/listcommandtest.php @@ -0,0 +1,69 @@ + + * + * @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 + * + */ + +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']); + } +}