Fix tests
* Add factory for the federatedfilesharing app Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
parent
f3723434ee
commit
119896a8d7
|
@ -44,7 +44,7 @@ return [
|
||||||
['root' => '/cloud', 'name' => 'Users#addUser', 'url' => '/users', 'verb' => 'POST'],
|
['root' => '/cloud', 'name' => 'Users#addUser', 'url' => '/users', 'verb' => 'POST'],
|
||||||
['root' => '/cloud', 'name' => 'Users#getUser', 'url' => '/users/{userId}', 'verb' => 'GET'],
|
['root' => '/cloud', 'name' => 'Users#getUser', 'url' => '/users/{userId}', 'verb' => 'GET'],
|
||||||
['root' => '/cloud', 'name' => 'Users#getCurrentUser', 'url' => '/user', 'verb' => 'GET'],
|
['root' => '/cloud', 'name' => 'Users#getCurrentUser', 'url' => '/user', 'verb' => 'GET'],
|
||||||
['root' => '/cloud', 'name' => 'Users#getEditableField', 'url' => '/user/fields', 'verb' => 'GET'],
|
['root' => '/cloud', 'name' => 'Users#getEditableFields', 'url' => '/user/fields', 'verb' => 'GET'],
|
||||||
['root' => '/cloud', 'name' => 'Users#editUser', 'url' => '/users/{userId}', 'verb' => 'PUT'],
|
['root' => '/cloud', 'name' => 'Users#editUser', 'url' => '/users/{userId}', 'verb' => 'PUT'],
|
||||||
['root' => '/cloud', 'name' => 'Users#deleteUser', 'url' => '/users/{userId}', 'verb' => 'DELETE'],
|
['root' => '/cloud', 'name' => 'Users#deleteUser', 'url' => '/users/{userId}', 'verb' => 'DELETE'],
|
||||||
['root' => '/cloud', 'name' => 'Users#enableUser', 'url' => '/users/{userId}/enable', 'verb' => 'PUT'],
|
['root' => '/cloud', 'name' => 'Users#enableUser', 'url' => '/users/{userId}/enable', 'verb' => 'PUT'],
|
||||||
|
|
|
@ -11,6 +11,7 @@ return array(
|
||||||
'OCA\\Provisioning_API\\Controller\\AppsController' => $baseDir . '/../lib/Controller/AppsController.php',
|
'OCA\\Provisioning_API\\Controller\\AppsController' => $baseDir . '/../lib/Controller/AppsController.php',
|
||||||
'OCA\\Provisioning_API\\Controller\\GroupsController' => $baseDir . '/../lib/Controller/GroupsController.php',
|
'OCA\\Provisioning_API\\Controller\\GroupsController' => $baseDir . '/../lib/Controller/GroupsController.php',
|
||||||
'OCA\\Provisioning_API\\Controller\\UsersController' => $baseDir . '/../lib/Controller/UsersController.php',
|
'OCA\\Provisioning_API\\Controller\\UsersController' => $baseDir . '/../lib/Controller/UsersController.php',
|
||||||
|
'OCA\\Provisioning_API\\FederatedFileSharingFactory' => $baseDir . '/../lib/FederatedFileSharingFactory.php',
|
||||||
'OCA\\Provisioning_API\\Middleware\\Exceptions\\NotSubAdminException' => $baseDir . '/../lib/Middleware/Exceptions/NotSubAdminException.php',
|
'OCA\\Provisioning_API\\Middleware\\Exceptions\\NotSubAdminException' => $baseDir . '/../lib/Middleware/Exceptions/NotSubAdminException.php',
|
||||||
'OCA\\Provisioning_API\\Middleware\\ProvisioningApiMiddleware' => $baseDir . '/../lib/Middleware/ProvisioningApiMiddleware.php',
|
'OCA\\Provisioning_API\\Middleware\\ProvisioningApiMiddleware' => $baseDir . '/../lib/Middleware/ProvisioningApiMiddleware.php',
|
||||||
);
|
);
|
||||||
|
|
|
@ -26,6 +26,7 @@ class ComposerStaticInitProvisioning_API
|
||||||
'OCA\\Provisioning_API\\Controller\\AppsController' => __DIR__ . '/..' . '/../lib/Controller/AppsController.php',
|
'OCA\\Provisioning_API\\Controller\\AppsController' => __DIR__ . '/..' . '/../lib/Controller/AppsController.php',
|
||||||
'OCA\\Provisioning_API\\Controller\\GroupsController' => __DIR__ . '/..' . '/../lib/Controller/GroupsController.php',
|
'OCA\\Provisioning_API\\Controller\\GroupsController' => __DIR__ . '/..' . '/../lib/Controller/GroupsController.php',
|
||||||
'OCA\\Provisioning_API\\Controller\\UsersController' => __DIR__ . '/..' . '/../lib/Controller/UsersController.php',
|
'OCA\\Provisioning_API\\Controller\\UsersController' => __DIR__ . '/..' . '/../lib/Controller/UsersController.php',
|
||||||
|
'OCA\\Provisioning_API\\FederatedFileSharingFactory' => __DIR__ . '/..' . '/../lib/FederatedFileSharingFactory.php',
|
||||||
'OCA\\Provisioning_API\\Middleware\\Exceptions\\NotSubAdminException' => __DIR__ . '/..' . '/../lib/Middleware/Exceptions/NotSubAdminException.php',
|
'OCA\\Provisioning_API\\Middleware\\Exceptions\\NotSubAdminException' => __DIR__ . '/..' . '/../lib/Middleware/Exceptions/NotSubAdminException.php',
|
||||||
'OCA\\Provisioning_API\\Middleware\\ProvisioningApiMiddleware' => __DIR__ . '/..' . '/../lib/Middleware/ProvisioningApiMiddleware.php',
|
'OCA\\Provisioning_API\\Middleware\\ProvisioningApiMiddleware' => __DIR__ . '/..' . '/../lib/Middleware/ProvisioningApiMiddleware.php',
|
||||||
);
|
);
|
||||||
|
|
|
@ -33,6 +33,7 @@ namespace OCA\Provisioning_API\Controller;
|
||||||
use OC\Accounts\AccountManager;
|
use OC\Accounts\AccountManager;
|
||||||
use OC\Settings\Mailer\NewUserMailHelper;
|
use OC\Settings\Mailer\NewUserMailHelper;
|
||||||
use OC_Helper;
|
use OC_Helper;
|
||||||
|
use OCA\Provisioning_API\FederatedFileSharingFactory;
|
||||||
use OCP\App\IAppManager;
|
use OCP\App\IAppManager;
|
||||||
use OCP\AppFramework\Http\DataResponse;
|
use OCP\AppFramework\Http\DataResponse;
|
||||||
use OCP\AppFramework\OCS\OCSException;
|
use OCP\AppFramework\OCS\OCSException;
|
||||||
|
@ -68,6 +69,8 @@ class UsersController extends OCSController {
|
||||||
private $l10nFactory;
|
private $l10nFactory;
|
||||||
/** @var NewUserMailHelper */
|
/** @var NewUserMailHelper */
|
||||||
private $newUserMailHelper;
|
private $newUserMailHelper;
|
||||||
|
/** @var FederatedFileSharingFactory */
|
||||||
|
private $federatedFileSharingFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $appName
|
* @param string $appName
|
||||||
|
@ -81,6 +84,7 @@ class UsersController extends OCSController {
|
||||||
* @param ILogger $logger
|
* @param ILogger $logger
|
||||||
* @param IFactory $l10nFactory
|
* @param IFactory $l10nFactory
|
||||||
* @param NewUserMailHelper $newUserMailHelper
|
* @param NewUserMailHelper $newUserMailHelper
|
||||||
|
* @param FederatedFileSharingFactory $federatedFileSharingFactory
|
||||||
*/
|
*/
|
||||||
public function __construct($appName,
|
public function __construct($appName,
|
||||||
IRequest $request,
|
IRequest $request,
|
||||||
|
@ -92,7 +96,8 @@ class UsersController extends OCSController {
|
||||||
AccountManager $accountManager,
|
AccountManager $accountManager,
|
||||||
ILogger $logger,
|
ILogger $logger,
|
||||||
IFactory $l10nFactory,
|
IFactory $l10nFactory,
|
||||||
NewUserMailHelper $newUserMailHelper) {
|
NewUserMailHelper $newUserMailHelper,
|
||||||
|
FederatedFileSharingFactory $federatedFileSharingFactory) {
|
||||||
parent::__construct($appName, $request);
|
parent::__construct($appName, $request);
|
||||||
|
|
||||||
$this->userManager = $userManager;
|
$this->userManager = $userManager;
|
||||||
|
@ -104,6 +109,7 @@ class UsersController extends OCSController {
|
||||||
$this->logger = $logger;
|
$this->logger = $logger;
|
||||||
$this->l10nFactory = $l10nFactory;
|
$this->l10nFactory = $l10nFactory;
|
||||||
$this->newUserMailHelper = $newUserMailHelper;
|
$this->newUserMailHelper = $newUserMailHelper;
|
||||||
|
$this->federatedFileSharingFactory = $federatedFileSharingFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -300,7 +306,7 @@ class UsersController extends OCSController {
|
||||||
* @NoAdminRequired
|
* @NoAdminRequired
|
||||||
* @NoSubAdminRequired
|
* @NoSubAdminRequired
|
||||||
*/
|
*/
|
||||||
public function getEditableField() {
|
public function getEditableFields() {
|
||||||
$permittedFields = [];
|
$permittedFields = [];
|
||||||
|
|
||||||
// Editing self (display, email)
|
// Editing self (display, email)
|
||||||
|
@ -310,7 +316,7 @@ class UsersController extends OCSController {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->appManager->isEnabledForUser('federatedfilesharing')) {
|
if ($this->appManager->isEnabledForUser('federatedfilesharing')) {
|
||||||
$federatedFileSharing = new \OCA\FederatedFileSharing\AppInfo\Application();
|
$federatedFileSharing = $this->federatedFileSharingFactory->get();
|
||||||
$shareProvider = $federatedFileSharing->getFederatedShareProvider();
|
$shareProvider = $federatedFileSharing->getFederatedShareProvider();
|
||||||
if ($shareProvider->isLookupServerUploadEnabled()) {
|
if ($shareProvider->isLookupServerUploadEnabled()) {
|
||||||
$permittedFields[] = AccountManager::PROPERTY_PHONE;
|
$permittedFields[] = AccountManager::PROPERTY_PHONE;
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @copyright 2018, Roeland Jago Douma <roeland@famdouma.nl>
|
||||||
|
*
|
||||||
|
* @author Roeland Jago Douma <roeland@famdouma.nl>
|
||||||
|
*
|
||||||
|
* @license GNU AGPL version 3 or any later version
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace OCA\Provisioning_API;
|
||||||
|
|
||||||
|
use OCA\FederatedFileSharing\AppInfo\Application;
|
||||||
|
|
||||||
|
class FederatedFileSharingFactory {
|
||||||
|
public function get(): Application {
|
||||||
|
return new Application();
|
||||||
|
}
|
||||||
|
}
|
|
@ -34,6 +34,9 @@ namespace OCA\Provisioning_API\Tests\Controller;
|
||||||
use Exception;
|
use Exception;
|
||||||
use OC\Accounts\AccountManager;
|
use OC\Accounts\AccountManager;
|
||||||
use OC\Group\Manager;
|
use OC\Group\Manager;
|
||||||
|
use OCA\FederatedFileSharing\AppInfo\Application;
|
||||||
|
use OCA\FederatedFileSharing\FederatedShareProvider;
|
||||||
|
use OCA\Provisioning_API\FederatedFileSharingFactory;
|
||||||
use OCP\App\IAppManager;
|
use OCP\App\IAppManager;
|
||||||
use OCP\AppFramework\OCS\OCSException;
|
use OCP\AppFramework\OCS\OCSException;
|
||||||
use OCP\Mail\IEMailTemplate;
|
use OCP\Mail\IEMailTemplate;
|
||||||
|
@ -80,6 +83,8 @@ class UsersControllerTest extends TestCase {
|
||||||
private $l10nFactory;
|
private $l10nFactory;
|
||||||
/** @var NewUserMailHelper|PHPUnit_Framework_MockObject_MockObject */
|
/** @var NewUserMailHelper|PHPUnit_Framework_MockObject_MockObject */
|
||||||
private $newUserMailHelper;
|
private $newUserMailHelper;
|
||||||
|
/** @var FederatedFileSharingFactory|\PHPUnit_Framework_MockObject_MockObject */
|
||||||
|
private $federatedFileSharingFactory;
|
||||||
|
|
||||||
protected function setUp() {
|
protected function setUp() {
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
|
@ -94,6 +99,7 @@ class UsersControllerTest extends TestCase {
|
||||||
$this->accountManager = $this->createMock(AccountManager::class);
|
$this->accountManager = $this->createMock(AccountManager::class);
|
||||||
$this->l10nFactory = $this->createMock(IFactory::class);
|
$this->l10nFactory = $this->createMock(IFactory::class);
|
||||||
$this->newUserMailHelper = $this->createMock(NewUserMailHelper::class);
|
$this->newUserMailHelper = $this->createMock(NewUserMailHelper::class);
|
||||||
|
$this->federatedFileSharingFactory = $this->createMock(FederatedFileSharingFactory::class);
|
||||||
|
|
||||||
$this->api = $this->getMockBuilder(UsersController::class)
|
$this->api = $this->getMockBuilder(UsersController::class)
|
||||||
->setConstructorArgs([
|
->setConstructorArgs([
|
||||||
|
@ -107,7 +113,8 @@ class UsersControllerTest extends TestCase {
|
||||||
$this->accountManager,
|
$this->accountManager,
|
||||||
$this->logger,
|
$this->logger,
|
||||||
$this->l10nFactory,
|
$this->l10nFactory,
|
||||||
$this->newUserMailHelper
|
$this->newUserMailHelper,
|
||||||
|
$this->federatedFileSharingFactory
|
||||||
])
|
])
|
||||||
->setMethods(['fillStorageInfo'])
|
->setMethods(['fillStorageInfo'])
|
||||||
->getMock();
|
->getMock();
|
||||||
|
@ -2877,7 +2884,8 @@ class UsersControllerTest extends TestCase {
|
||||||
$this->accountManager,
|
$this->accountManager,
|
||||||
$this->logger,
|
$this->logger,
|
||||||
$this->l10nFactory,
|
$this->l10nFactory,
|
||||||
$this->newUserMailHelper
|
$this->newUserMailHelper,
|
||||||
|
$this->federatedFileSharingFactory
|
||||||
])
|
])
|
||||||
->setMethods(['getUserData'])
|
->setMethods(['getUserData'])
|
||||||
->getMock();
|
->getMock();
|
||||||
|
@ -2938,7 +2946,8 @@ class UsersControllerTest extends TestCase {
|
||||||
$this->accountManager,
|
$this->accountManager,
|
||||||
$this->logger,
|
$this->logger,
|
||||||
$this->l10nFactory,
|
$this->l10nFactory,
|
||||||
$this->newUserMailHelper
|
$this->newUserMailHelper,
|
||||||
|
$this->federatedFileSharingFactory
|
||||||
])
|
])
|
||||||
->setMethods(['getUserData'])
|
->setMethods(['getUserData'])
|
||||||
->getMock();
|
->getMock();
|
||||||
|
@ -3318,4 +3327,64 @@ class UsersControllerTest extends TestCase {
|
||||||
|
|
||||||
$this->api->resendWelcomeMessage('UserToGet');
|
$this->api->resendWelcomeMessage('UserToGet');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function dataGetEditableFields() {
|
||||||
|
return [
|
||||||
|
[false, false, []],
|
||||||
|
[false, true, [
|
||||||
|
AccountManager::PROPERTY_PHONE,
|
||||||
|
AccountManager::PROPERTY_ADDRESS,
|
||||||
|
AccountManager::PROPERTY_WEBSITE,
|
||||||
|
AccountManager::PROPERTY_TWITTER,
|
||||||
|
]],
|
||||||
|
[ true, false, [
|
||||||
|
AccountManager::PROPERTY_DISPLAYNAME,
|
||||||
|
AccountManager::PROPERTY_EMAIL,
|
||||||
|
]],
|
||||||
|
[ true, true ,[
|
||||||
|
AccountManager::PROPERTY_DISPLAYNAME,
|
||||||
|
AccountManager::PROPERTY_EMAIL,
|
||||||
|
AccountManager::PROPERTY_PHONE,
|
||||||
|
AccountManager::PROPERTY_ADDRESS,
|
||||||
|
AccountManager::PROPERTY_WEBSITE,
|
||||||
|
AccountManager::PROPERTY_TWITTER,
|
||||||
|
]]
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider dataGetEditableFields
|
||||||
|
*
|
||||||
|
* @param bool $allowedToChangeDisplayName
|
||||||
|
* @param bool $federatedSharingEnabled
|
||||||
|
* @param array $expected
|
||||||
|
*/
|
||||||
|
public function testGetEditableFields(bool $allowedToChangeDisplayName, bool $federatedSharingEnabled, array $expected) {
|
||||||
|
$this->config
|
||||||
|
->method('getSystemValue')
|
||||||
|
->with(
|
||||||
|
$this->equalTo('allow_user_to_change_display_name'),
|
||||||
|
$this->anything()
|
||||||
|
)->willReturn($allowedToChangeDisplayName);
|
||||||
|
$this->appManager
|
||||||
|
->method('isEnabledForUser')
|
||||||
|
->with($this->equalTo('federatedfilesharing'))
|
||||||
|
->willReturn($federatedSharingEnabled);
|
||||||
|
|
||||||
|
$shareprovider = $this->createMock(FederatedShareProvider::class);
|
||||||
|
$shareprovider->method('isLookupServerUploadEnabled')->willReturn(true);
|
||||||
|
|
||||||
|
$federatedFileSharing = $this->createMock(Application::class);
|
||||||
|
$federatedFileSharing
|
||||||
|
->method('getFederatedShareProvider')
|
||||||
|
->willReturn($shareprovider);
|
||||||
|
|
||||||
|
$this->federatedFileSharingFactory
|
||||||
|
->method('get')
|
||||||
|
->willReturn($federatedFileSharing);
|
||||||
|
|
||||||
|
$expectedResp = new DataResponse($expected);
|
||||||
|
$this->assertEquals($expectedResp, $this->api->getEditableFields());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue