From ae8ea577937326adbb9d73282f0481f2d4ee8d58 Mon Sep 17 00:00:00 2001
From: "John Molakvoæ (skjnldsv)" <skjnldsv@protonmail.com>
Date: Tue, 24 Apr 2018 16:20:01 +0200
Subject: Bump tests and editorconfig
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
---
 tests/Settings/Controller/UsersControllerTest.php | 2524 +--------------------
 1 file changed, 9 insertions(+), 2515 deletions(-)

(limited to 'tests/Settings')

diff --git a/tests/Settings/Controller/UsersControllerTest.php b/tests/Settings/Controller/UsersControllerTest.php
index 4cfec07f78b..74ac990be92 100644
--- a/tests/Settings/Controller/UsersControllerTest.php
+++ b/tests/Settings/Controller/UsersControllerTest.php
@@ -31,10 +31,10 @@ use OCP\IGroupManager;
 use OCP\IL10N;
 use OCP\ILogger;
 use OCP\IRequest;
-use OCP\IURLGenerator;
 use OCP\IUser;
 use OCP\IUserManager;
 use OCP\IUserSession;
+use OCP\L10N\IFactory;
 use OCP\Mail\IEMailTemplate;
 use OCP\Mail\IMailer;
 use OCP\Security\ISecureRandom;
@@ -60,8 +60,8 @@ class UsersControllerTest extends \Test\TestCase {
 	private $logger;
 	/** @var IMailer|\PHPUnit_Framework_MockObject_MockObject */
 	private $mailer;
-	/** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject */
-	private $urlGenerator;
+	/** @var IFactory|\PHPUnit_Framework_MockObject_MockObject */
+	private $l10nFactory;
 	/** @var IAppManager|\PHPUnit_Framework_MockObject_MockObject */
 	private $appManager;
 	/** @var IAvatarManager|\PHPUnit_Framework_MockObject_MockObject */
@@ -78,8 +78,6 @@ class UsersControllerTest extends \Test\TestCase {
 	private $jobList;
 	/** @var \OC\Security\IdentityProof\Manager |\PHPUnit_Framework_MockObject_MockObject  */
 	private $securityManager;
-	/** @var IUserMountCache |\PHPUnit_Framework_MockObject_MockObject */
-	private $userMountCache;
 	/** @var  IManager | \PHPUnit_Framework_MockObject_MockObject */
 	private $encryptionManager;
 	/** @var  IEncryptionModule  | \PHPUnit_Framework_MockObject_MockObject */
@@ -88,46 +86,28 @@ class UsersControllerTest extends \Test\TestCase {
 	protected function setUp() {
 		parent::setUp();
 
-		$this->groupManager = $this->createMock(Manager::class);
 		$this->userManager = $this->createMock(IUserManager::class);
+		$this->groupManager = $this->createMock(Manager::class);
 		$this->userSession = $this->createMock(IUserSession::class);
 		$this->config = $this->createMock(IConfig::class);
-		$this->logger = $this->createMock(ILogger::class);
+		$this->l = $this->createMock(IL10N::class);
 		$this->mailer = $this->createMock(IMailer::class);
-		$this->urlGenerator = $this->createMock(IURLGenerator::class);
+		$this->l10nFactory = $this->createMock(IFactory::class);
 		$this->appManager = $this->createMock(IAppManager::class);
-		$this->avatarManager = $this->createMock(IAvatarManager::class);
 		$this->accountManager = $this->createMock(AccountManager::class);
-		$this->secureRandom = $this->createMock(ISecureRandom::class);
-		$this->newUserMailHelper = $this->createMock(NewUserMailHelper::class);
 		$this->securityManager = $this->getMockBuilder(\OC\Security\IdentityProof\Manager::class)->disableOriginalConstructor()->getMock();
 		$this->jobList = $this->createMock(IJobList::class);
 		$this->encryptionManager = $this->createMock(IManager::class);
-		$this->l = $this->createMock(IL10N::class);
+		
 		$this->l->method('t')
 			->will($this->returnCallback(function ($text, $parameters = []) {
 				return vsprintf($text, $parameters);
 			}));
-		$this->userMountCache = $this->createMock(IUserMountCache::class);
 
 		$this->encryptionModule = $this->createMock(IEncryptionModule::class);
 		$this->encryptionManager->expects($this->any())->method('getEncryptionModules')
 			->willReturn(['encryptionModule' => ['callback' => function() { return $this->encryptionModule;}]]);
 
-		/*
-		 * Set default avatar behaviour for whole test suite
-		 */
-
-		$avatarExists = $this->createMock(IAvatar::class);
-		$avatarExists->method('exists')->willReturn(true);
-		$avatarNotExists = $this->createMock(IAvatar::class);
-		$avatarNotExists->method('exists')->willReturn(false);
-		$this->avatarManager->method('getAvatar')
-			->will($this->returnValueMap([
-				['foo', $avatarExists],
-				['bar', $avatarExists],
-				['admin', $avatarNotExists],
-			]));
 	}
 
 	/**
@@ -145,17 +125,12 @@ class UsersControllerTest extends \Test\TestCase {
 				$this->config,
 				$isAdmin,
 				$this->l,
-				$this->logger,
 				$this->mailer,
-				$this->urlGenerator,
+				$this->l10nFactory,
 				$this->appManager,
-				$this->avatarManager,
 				$this->accountManager,
-				$this->secureRandom,
-				$this->newUserMailHelper,
 				$this->securityManager,
 				$this->jobList,
-				$this->userMountCache,
 				$this->encryptionManager
 			);
 		} else {
@@ -170,1926 +145,18 @@ class UsersControllerTest extends \Test\TestCase {
 						$this->config,
 						$isAdmin,
 						$this->l,
-						$this->logger,
 						$this->mailer,
-						$this->urlGenerator,
+						$this->l10nFactory,
 						$this->appManager,
-						$this->avatarManager,
 						$this->accountManager,
-						$this->secureRandom,
-						$this->newUserMailHelper,
 						$this->securityManager,
 						$this->jobList,
-						$this->userMountCache,
 						$this->encryptionManager
 					]
 				)->setMethods($mockedMethods)->getMock();
 		}
 	}
 
-	public function testIndexAdmin() {
-		$controller = $this->getController(true);
-
-		$foo = $this->createMock(User::class);
-		$foo
-			->expects($this->exactly(2))
-			->method('getUID')
-			->will($this->returnValue('foo'));
-		$foo
-			->expects($this->once())
-			->method('getDisplayName')
-			->will($this->returnValue('M. Foo'));
-		$foo
-			->expects($this->once())
-			->method('getEMailAddress')
-			->will($this->returnValue('foo@bar.com'));
-		$foo
-			->expects($this->exactly(2))
-			->method('getQuota')
-			->will($this->returnValue(1024));
-		$foo
-			->method('getLastLogin')
-			->will($this->returnValue(500));
-		$foo
-			->method('getHome')
-			->will($this->returnValue('/home/foo'));
-		$foo
-			->expects($this->once())
-			->method('getBackendClassName')
-			->will($this->returnValue('OC_User_Database'));
-		$foo->expects($this->any())
-			->method('isEnabled')
-			->willReturn(true);
-		$admin = $this->createMock(User::class);
-		$admin
-			->expects($this->exactly(2))
-			->method('getUID')
-			->will($this->returnValue('admin'));
-		$admin
-			->expects($this->once())
-			->method('getDisplayName')
-			->will($this->returnValue('S. Admin'));
-		$admin
-			->expects($this->once())
-			->method('getEMailAddress')
-			->will($this->returnValue('admin@bar.com'));
-		$admin
-			->expects($this->exactly(2))
-			->method('getQuota')
-			->will($this->returnValue(404));
-		$admin
-			->expects($this->once())
-			->method('getLastLogin')
-			->will($this->returnValue(12));
-		$admin
-			->expects($this->once())
-			->method('getHome')
-			->will($this->returnValue('/home/admin'));
-		$admin
-			->expects($this->once())
-			->method('getBackendClassName')
-			->willReturn(Dummy::class);
-		$admin->expects($this->any())
-			->method('isEnabled')
-			->willReturn(true);
-		$bar = $this->createMock(User::class);
-		$bar
-			->expects($this->exactly(2))
-			->method('getUID')
-			->will($this->returnValue('bar'));
-		$bar
-			->expects($this->once())
-			->method('getDisplayName')
-			->will($this->returnValue('B. Ar'));
-		$bar
-			->expects($this->once())
-			->method('getEMailAddress')
-			->will($this->returnValue('bar@dummy.com'));
-		$bar
-			->expects($this->exactly(2))
-			->method('getQuota')
-			->will($this->returnValue(2323));
-		$bar
-			->method('getLastLogin')
-			->will($this->returnValue(3999));
-		$bar
-			->method('getHome')
-			->will($this->returnValue('/home/bar'));
-		$bar
-			->expects($this->once())
-			->method('getBackendClassName')
-			->willReturn(Dummy::class);
-		$bar->expects($this->at(0))
-			->method('isEnabled')
-			->willReturn(true);
-		$bar->expects($this->at(1))
-			->method('isEnabled')
-			->willReturn(true);
-		$bar->expects($this->at(2))
-			->method('isEnabled')
-			->willReturn(false);
-
-		$this->groupManager
-			->expects($this->once())
-			->method('displayNamesInGroup')
-			->with('gid', 'pattern')
-			->will($this->returnValue(array('foo' => 'M. Foo', 'admin' => 'S. Admin', 'bar' => 'B. Ar')));
-		$this->groupManager
-			->expects($this->exactly(3))
-			->method('getUserGroupNames')
-			->will($this->onConsecutiveCalls(
-				array(
-					'Users' => array('displayName' => 'Users'),
-					'Support' => array('displayName' => 'Support')
-				),
-				array(
-					'admins' => array('displayName' => 'admins'),
-					'Support' => array('displayName' => 'Support')
-				),
-				array(
-					'External Users' => array('displayName' => 'External Users')
-				)
-			));
-		$this->userManager
-			->expects($this->at(0))
-			->method('get')
-			->with('foo')
-			->will($this->returnValue($foo));
-		$this->userManager
-			->expects($this->at(1))
-			->method('get')
-			->with('admin')
-			->will($this->returnValue($admin));
-		$this->userManager
-			->expects($this->at(2))
-			->method('get')
-			->with('bar')
-			->will($this->returnValue($bar));
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin
-			->expects($this->any())
-			->method('getSubAdminsGroupsName')
-			->with($foo)
-			->will($this->returnValue([]));
-		$subadmin
-			->expects($this->any())
-			->method('getSubAdminsGroupsName')
-			->with($admin)
-			->will($this->returnValue([]));
-		$subadmin
-			->expects($this->any())
-			->method('getSubAdminsGroupsName')
-			->with($bar)
-			->will($this->returnValue([]));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$this->userMountCache
-			->expects($this->once())
-			->method('getUsedSpaceForUsers')
-			->will($this->returnValue(['admin' => 200, 'bar' => 2000, 'foo' => 512]));
-
-		$expectedResponse = new DataResponse(
-			array(
-				0 => array(
-					'name' => 'foo',
-					'displayname' => 'M. Foo',
-					'groups' => array(
-						'Users' => array('displayName' => 'Users'),
-						'Support' => array('displayName' => 'Support')
-					),
-					'subadmin' => array(),
-					'quota' => 1024,
-					'quota_bytes' => 1024.0,
-					'storageLocation' => '/home/foo',
-					'lastLogin' => 500000,
-					'backend' => 'OC_User_Database',
-					'email' => 'foo@bar.com',
-					'isRestoreDisabled' => false,
-					'isAvatarAvailable' => true,
-					'isEnabled' => true,
-					'size' => 512,
-				),
-				1 => array(
-					'name' => 'admin',
-					'displayname' => 'S. Admin',
-					'groups' => array(
-						'admins' => array('displayName' => 'admins'),
-						'Support' => array('displayName' => 'Support')
-					),
-					'subadmin' => array(),
-					'quota' => 404,
-					'quota_bytes' => 404.0,
-					'storageLocation' => '/home/admin',
-					'lastLogin' => 12000,
-					'backend' => Dummy::class,
-					'email' => 'admin@bar.com',
-					'isRestoreDisabled' => false,
-					'isAvatarAvailable' => false,
-					'isEnabled' => true,
-					'size' => 200,
-				),
-				2 => array(
-					'name' => 'bar',
-					'displayname' => 'B. Ar',
-					'groups' => array(
-						'External Users' => array('displayName' => 'External Users')
-					),
-					'subadmin' => array(),
-					'quota' => 2323,
-					'quota_bytes' => 2323.0,
-					'storageLocation' => '/home/bar',
-					'lastLogin' => 3999000,
-					'backend' => Dummy::class,
-					'email' => 'bar@dummy.com',
-					'isRestoreDisabled' => false,
-					'isAvatarAvailable' => true,
-					'isEnabled' => false,
-					'size' => 2000,
-				),
-			)
-		);
-		$response = $controller->index(0, 10, 'gid', 'pattern');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testIndexSubAdmin() {
-		$controller = $this->getController(false);
-
-		$user = $this->createMock(User::class);
-		$this->userSession
-			->expects($this->once())
-			->method('getUser')
-			->will($this->returnValue($user));
-
-		$foo = $this->createMock(User::class);
-		$foo
-			->expects($this->exactly(2))
-			->method('getUID')
-			->will($this->returnValue('foo'));
-		$foo
-			->expects($this->once())
-			->method('getDisplayName')
-			->will($this->returnValue('M. Foo'));
-		$foo
-			->expects($this->once())
-			->method('getEMailAddress')
-			->will($this->returnValue('foo@bar.com'));
-		$foo
-			->expects($this->exactly(2))
-			->method('getQuota')
-			->will($this->returnValue('1024'));
-		$foo
-			->method('getLastLogin')
-			->will($this->returnValue(500));
-		$foo
-			->method('getHome')
-			->will($this->returnValue('/home/foo'));
-		$foo
-			->expects($this->once())
-			->method('getBackendClassName')
-			->will($this->returnValue('OC_User_Database'));
-		$foo->expects($this->any())
-			->method('isEnabled')
-			->willReturn(true);
-		$admin = $this->createMock(User::class);
-		$admin
-			->expects($this->exactly(2))
-			->method('getUID')
-			->will($this->returnValue('admin'));
-		$admin
-			->expects($this->once())
-			->method('getDisplayName')
-			->will($this->returnValue('S. Admin'));
-		$admin
-			->expects($this->once())
-			->method('getEMailAddress')
-			->will($this->returnValue('admin@bar.com'));
-		$admin
-			->expects($this->exactly(2))
-			->method('getQuota')
-			->will($this->returnValue('404'));
-		$admin
-			->expects($this->once())
-			->method('getLastLogin')
-			->will($this->returnValue(12));
-		$admin
-			->expects($this->once())
-			->method('getHome')
-			->will($this->returnValue('/home/admin'));
-		$admin
-			->expects($this->once())
-			->method('getBackendClassName')
-			->willReturn(Dummy::class);
-		$admin->expects($this->any())
-			->method('isEnabled')
-			->willReturn(true);
-		$bar = $this->createMock(User::class);
-		$bar
-			->expects($this->exactly(2))
-			->method('getUID')
-			->will($this->returnValue('bar'));
-		$bar
-			->expects($this->once())
-			->method('getDisplayName')
-			->will($this->returnValue('B. Ar'));
-		$bar
-			->expects($this->once())
-			->method('getEMailAddress')
-			->will($this->returnValue('bar@dummy.com'));
-		$bar
-			->expects($this->exactly(2))
-			->method('getQuota')
-			->will($this->returnValue('2323'));
-		$bar
-			->method('getLastLogin')
-			->will($this->returnValue(3999));
-		$bar
-			->method('getHome')
-			->will($this->returnValue('/home/bar'));
-		$bar
-			->expects($this->once())
-			->method('getBackendClassName')
-			->willReturn(Dummy::class);
-		$bar->expects($this->any())
-			->method('isEnabled')
-			->willReturn(true);
-
-		$this->groupManager
-			->expects($this->at(2))
-			->method('displayNamesInGroup')
-			->with('SubGroup2', 'pattern')
-			->will($this->returnValue(['foo' => 'M. Foo', 'admin' => 'S. Admin']));
-		$this->groupManager
-			->expects($this->at(1))
-			->method('displayNamesInGroup')
-			->with('SubGroup1', 'pattern')
-			->will($this->returnValue(['bar' => 'B. Ar']));
-		$this->groupManager
-			->expects($this->exactly(3))
-			->method('getUserGroupIds')
-			->will($this->onConsecutiveCalls(
-				['admin', 'SubGroup1', 'testGroup'],
-				['SubGroup2', 'SubGroup1'],
-				['SubGroup2', 'Foo']
-			));
-		$this->userManager
-			->expects($this->at(0))
-			->method('get')
-			->with('bar')
-			->will($this->returnValue($bar));
-		$this->userManager
-			->expects($this->at(1))
-			->method('get')
-			->with('foo')
-			->will($this->returnValue($foo));
-		$this->userManager
-			->expects($this->at(2))
-			->method('get')
-			->with('admin')
-			->will($this->returnValue($admin));
-
-		$subgroup1 = $this->getMockBuilder(IGroup::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subgroup1->expects($this->any())
-			->method('getGID')
-			->will($this->returnValue('SubGroup1'));
-		$subgroup2 = $this->getMockBuilder(IGroup::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subgroup2->expects($this->any())
-			->method('getGID')
-			->will($this->returnValue('SubGroup2'));
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin
-			->expects($this->at(0))
-			->method('getSubAdminsGroups')
-			->will($this->returnValue([$subgroup1, $subgroup2]));
-		$subadmin
-			->expects($this->any())
-			->method('getSubAdminsGroupsName')
-			->will($this->returnValue([]));
-		$subadmin
-			->expects($this->any())
-			->method('getSubAdminsGroups')
-			->will($this->returnValue([]));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$this->userMountCache
-			->expects($this->once())
-			->method('getUsedSpaceForUsers')
-			->will($this->returnValue(['admin' => 200, 'bar' => 2000, 'foo' => 512]));
-
-		$expectedResponse = new DataResponse(
-			[
-				0 => [
-					'name' => 'bar',
-					'displayname' => 'B. Ar',
-					'groups' => ['SubGroup1'],
-					'subadmin' => [],
-					'quota' => '2323',
-					'quota_bytes' => 2323.0,
-					'storageLocation' => '/home/bar',
-					'lastLogin' => 3999000,
-					'backend' => Dummy::class,
-					'email' => 'bar@dummy.com',
-					'isRestoreDisabled' => false,
-					'isAvatarAvailable' => true,
-					'isEnabled' => true,
-					'size' => 2000,
-				],
-				1=> [
-					'name' => 'foo',
-					'displayname' => 'M. Foo',
-					'groups' => ['SubGroup2', 'SubGroup1'],
-					'subadmin' => [],
-					'quota' => '1024',
-					'quota_bytes' => 1024.0,
-					'storageLocation' => '/home/foo',
-					'lastLogin' => 500000,
-					'backend' => 'OC_User_Database',
-					'email' => 'foo@bar.com',
-					'isRestoreDisabled' => false,
-					'isAvatarAvailable' => true,
-					'isEnabled' => true,
-					'size' => 512,
-				],
-				2 => [
-					'name' => 'admin',
-					'displayname' => 'S. Admin',
-					'groups' => ['SubGroup2'],
-					'subadmin' => [],
-					'quota' => '404',
-					'quota_bytes' => 404.0,
-					'storageLocation' => '/home/admin',
-					'lastLogin' => 12000,
-					'backend' => Dummy::class,
-					'email' => 'admin@bar.com',
-					'isRestoreDisabled' => false,
-					'isAvatarAvailable' => false,
-					'isEnabled' => true,
-					'size' => 200,
-				],
-			]
-		);
-
-		$response = $controller->index(0, 10, '', 'pattern');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	/**
-	 * TODO: Since the function uses the static OC_Subadmin class it can't be mocked
-	 * to test for subadmins. Thus the test always assumes you have admin permissions...
-	 */
-	public function testIndexWithSearch() {
-		$controller = $this->getController(true);
-
-		$foo = $this->createMock(User::class);
-		$foo
-			->expects($this->exactly(2))
-			->method('getUID')
-			->will($this->returnValue('foo'));
-		$foo
-			->expects($this->once())
-			->method('getDisplayName')
-			->will($this->returnValue('M. Foo'));
-		$foo
-			->expects($this->once())
-			->method('getEMailAddress')
-			->will($this->returnValue('foo@bar.com'));
-		$foo
-			->expects($this->exactly(2))
-			->method('getQuota')
-			->will($this->returnValue('1024'));
-		$foo
-			->method('getLastLogin')
-			->will($this->returnValue(500));
-		$foo
-			->method('getHome')
-			->will($this->returnValue('/home/foo'));
-		$foo
-			->expects($this->once())
-			->method('getBackendClassName')
-			->will($this->returnValue('OC_User_Database'));
-		$foo->expects($this->any())
-			->method('isEnabled')
-			->willReturn(true);
-		$admin = $this->createMock(User::class);
-		$admin
-			->expects($this->exactly(2))
-			->method('getUID')
-			->will($this->returnValue('admin'));
-		$admin
-			->expects($this->once())
-			->method('getDisplayName')
-			->will($this->returnValue('S. Admin'));
-		$admin
-			->expects($this->once())
-			->method('getEMailAddress')
-			->will($this->returnValue('admin@bar.com'));
-		$admin
-			->expects($this->exactly(2))
-			->method('getQuota')
-			->will($this->returnValue('404'));
-		$admin
-			->expects($this->once())
-			->method('getLastLogin')
-			->will($this->returnValue(12));
-		$admin
-			->expects($this->once())
-			->method('getHome')
-			->will($this->returnValue('/home/admin'));
-		$admin
-			->expects($this->once())
-			->method('getBackendClassName')
-			->willReturn(Dummy::class);
-		$admin->expects($this->any())
-			->method('isEnabled')
-			->willReturn(true);
-		$bar = $this->createMock(User::class);
-		$bar
-			->expects($this->exactly(2))
-			->method('getUID')
-			->will($this->returnValue('bar'));
-		$bar
-			->expects($this->once())
-			->method('getDisplayName')
-			->will($this->returnValue('B. Ar'));
-		$bar
-			->expects($this->once())
-			->method('getEMailAddress')
-			->will($this->returnValue('bar@dummy.com'));
-		$bar
-			->expects($this->exactly(2))
-			->method('getQuota')
-			->will($this->returnValue('2323'));
-		$bar
-			->method('getLastLogin')
-			->will($this->returnValue(3999));
-		$bar
-			->method('getHome')
-			->will($this->returnValue('/home/bar'));
-		$bar
-			->expects($this->once())
-			->method('getBackendClassName')
-			->willReturn(Dummy::class);
-		$bar->expects($this->any())
-			->method('isEnabled')
-			->willReturn(true);
-
-		$this->userManager
-			->expects($this->once())
-			->method('search')
-			->with('pattern', 10, 0)
-			->will($this->returnValue([$foo, $admin, $bar]));
-		$this->groupManager
-			->expects($this->exactly(3))
-			->method('getUserGroupNames')
-			->will($this->onConsecutiveCalls(
-				array(
-					'Users' => array('displayName' => 'Users'),
-					'Support' => array('displayName' => 'Support')
-				),
-				array(
-					'admins' => array('displayName' => 'admins'),
-					'Support' => array('displayName' => 'Support')
-				),
-				array(
-					'External Users' => array('displayName' => 'External Users')
-				)
-			));
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin->expects($this->any())
-			->method('getSubAdminsGroupsName')
-			->will($this->returnValue([]));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$this->userMountCache
-			->expects($this->once())
-			->method('getUsedSpaceForUsers')
-			->will($this->returnValue(['admin' => 200, 'bar' => 2000, 'foo' => 512]));
-
-		$expectedResponse = new DataResponse(
-			array(
-				0 => array(
-					'name' => 'foo',
-					'displayname' => 'M. Foo',
-					'groups' => array(
-						'Users' => array('displayName' => 'Users'),
-						'Support' => array('displayName' => 'Support')
-					),
-					'subadmin' => array(),
-					'quota' => 1024,
-					'quota_bytes' => 1024,
-					'storageLocation' => '/home/foo',
-					'lastLogin' => 500000,
-					'backend' => 'OC_User_Database',
-					'email' => 'foo@bar.com',
-					'isRestoreDisabled' => false,
-					'isAvatarAvailable' => true,
-					'isEnabled' => true,
-					'size' => 512,
-				),
-				1 => array(
-					'name' => 'admin',
-					'displayname' => 'S. Admin',
-					'groups' => array(
-						'admins' => array('displayName' => 'admins'),
-						'Support' => array('displayName' => 'Support')
-					),
-					'subadmin' => array(),
-					'quota' => 404,
-					'quota_bytes' => 404,
-					'storageLocation' => '/home/admin',
-					'lastLogin' => 12000,
-					'backend' => Dummy::class,
-					'email' => 'admin@bar.com',
-					'isRestoreDisabled' => false,
-					'isAvatarAvailable' => false,
-					'isEnabled' => true,
-					'size' => 200,
-				),
-				2 => array(
-					'name' => 'bar',
-					'displayname' => 'B. Ar',
-					'groups' => array(
-						'External Users' => array('displayName' => 'External Users')
-					),
-					'subadmin' => array(),
-					'quota' => 2323,
-					'quota_bytes' => 2323,
-					'storageLocation' => '/home/bar',
-					'lastLogin' => 3999000,
-					'backend' => Dummy::class,
-					'email' => 'bar@dummy.com',
-					'isRestoreDisabled' => false,
-					'isAvatarAvailable' => true,
-					'isEnabled' => true,
-					'size' => 2000,
-				),
-			)
-		);
-		$response = $controller->index(0, 10, '', 'pattern');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testIndexWithBackend() {
-		$controller = $this->getController(true);
-
-		$user = $this->createMock(User::class);
-		$user
-			->expects($this->exactly(2))
-			->method('getUID')
-			->will($this->returnValue('foo'));
-		$user
-			->expects($this->once())
-			->method('getDisplayName')
-			->will($this->returnValue('M. Foo'));
-		$user
-			->expects($this->once())
-			->method('getEMailAddress')
-			->will($this->returnValue(null));
-		$user
-			->expects($this->exactly(2))
-			->method('getQuota')
-			->will($this->returnValue('none'));
-		$user
-			->method('getLastLogin')
-			->will($this->returnValue(500));
-		$user
-			->method('getHome')
-			->will($this->returnValue('/home/foo'));
-		$user
-			->expects($this->once())
-			->method('getBackendClassName')
-			->will($this->returnValue('OC_User_Database'));
-		$user->expects($this->any())
-			->method('isEnabled')
-			->willReturn(true);
-
-		$this->userManager
-			->expects($this->once())
-			->method('getBackends')
-			->will($this->returnValue([new Dummy(), new \OC\User\Database()]));
-		$this->userManager
-			->expects($this->once())
-			->method('clearBackends');
-		$this->userManager
-			->expects($this->once())
-			->method('search')
-			->with('')
-			->will($this->returnValue([$user]));
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin->expects($this->once())
-			->method('getSubAdminsGroupsName')
-			->will($this->returnValue([]));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$this->userMountCache
-			->expects($this->once())
-			->method('getUsedSpaceForUsers')
-			->will($this->returnValue(['foo' => 512]));
-
-		$expectedResponse = new DataResponse(
-			array(
-				0 => array(
-					'name' => 'foo',
-					'displayname' => 'M. Foo',
-					'groups' => null,
-					'subadmin' => array(),
-					'quota' => 'none',
-					'quota_bytes' => 0,
-					'storageLocation' => '/home/foo',
-					'lastLogin' => 500000,
-					'backend' => 'OC_User_Database',
-					'email' => null,
-					'isRestoreDisabled' => false,
-					'isAvatarAvailable' => true,
-					'isEnabled' => true,
-					'size' => 512,
-				)
-			)
-		);
-		$response = $controller->index(0, 10, '','', Dummy::class);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testIndexWithBackendNoUser() {
-		$controller = $this->getController(true);
-
-		$this->userManager
-			->expects($this->once())
-			->method('getBackends')
-			->will($this->returnValue([new Dummy(), new \OC\User\Database()]));
-		$this->userManager
-			->expects($this->once())
-			->method('search')
-			->with('')
-			->will($this->returnValue([]));
-
-		$this->userMountCache
-			->expects($this->once())
-			->method('getUsedSpaceForUsers')
-			->will($this->returnValue([]));
-
-		$expectedResponse = new DataResponse([]);
-		$response = $controller->index(0, 10, '','', Dummy::class);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testCreateSuccessfulWithoutGroupAdmin() {
-		$controller = $this->getController(true);
-
-		$user = $this->createMock(User::class);
-		$user
-			->method('getHome')
-			->will($this->returnValue('/home/user'));
-		$user
-			->method('getUID')
-			->will($this->returnValue('foo'));
-		$user
-			->expects($this->once())
-			->method('getBackendClassName')
-			->will($this->returnValue('bar'));
-		$user->expects($this->any())
-			->method('isEnabled')
-			->willReturn(true);
-
-		$this->userManager
-			->expects($this->once())
-			->method('createUser')
-			->will($this->onConsecutiveCalls($user));
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin
-			->expects($this->any())
-			->method('getSubAdminsGroupsName')
-			->with($user)
-			->will($this->returnValue([]));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$expectedResponse = new DataResponse(
-			array(
-				'name' => 'foo',
-				'groups' => null,
-				'storageLocation' => '/home/user',
-				'backend' => 'bar',
-				'lastLogin' => null,
-				'displayname' => null,
-				'quota' => null,
-				'subadmin' => array(),
-				'email' => null,
-				'isRestoreDisabled' => false,
-				'isAvatarAvailable' => true,
-				'isEnabled' => true,
-				'quota_bytes' => false,
-			),
-			Http::STATUS_CREATED
-		);
-		$response = $controller->create('foo', 'password', array());
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testCreateSuccessfulWithGroupAdmin() {
-		$controller = $this->getController(true);
-
-		$user = $this->createMock(User::class);
-		$user
-			->method('getHome')
-			->will($this->returnValue('/home/user'));
-		$user
-			->method('getHome')
-			->will($this->returnValue('/home/user'));
-		$user
-			->method('getUID')
-			->will($this->returnValue('foo'));
-		$user
-			->expects($this->once())
-			->method('getBackendClassName')
-			->will($this->returnValue('bar'));
-		$user->expects($this->any())
-			->method('isEnabled')
-			->willReturn(true);
-		$existingGroup = $this->getMockBuilder(IGroup::class)
-			->disableOriginalConstructor()->getMock();
-		$existingGroup
-			->expects($this->once())
-			->method('addUser')
-			->with($user);
-		$newGroup = $this->getMockBuilder(IGroup::class)
-			->disableOriginalConstructor()->getMock();
-		$newGroup
-			->expects($this->once())
-			->method('addUser')
-			->with($user);
-
-		$this->userManager
-			->expects($this->once())
-			->method('createUser')
-			->will($this->onConsecutiveCalls($user));
-		$this->groupManager
-			->expects($this->exactly(2))
-			->method('get')
-			->will($this->onConsecutiveCalls(null, $existingGroup));
-		$this->groupManager
-			->expects($this->once())
-			->method('createGroup')
-			->with('NewGroup')
-			->will($this->onConsecutiveCalls($newGroup));
-		$this->groupManager
-			->expects($this->once())
-			->method('getUserGroupNames')
-			->with($user)
-			->will($this->onConsecutiveCalls(
-				array(
-					'NewGroup' => array('displayName' => 'NewGroup'),
-					'ExistingGroup' => array('displayName' => 'ExistingGroup')
-				)
-			));
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin
-			->expects($this->once())
-			->method('getSubAdminsGroupsName')
-			->with($user)
-			->will($this->returnValue([]));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$expectedResponse = new DataResponse(
-			array(
-				'name' => 'foo',
-				'groups' => array(
-					'NewGroup' => array('displayName' => 'NewGroup'),
-					'ExistingGroup' => array('displayName' => 'ExistingGroup')
-				),
-				'storageLocation' => '/home/user',
-				'backend' => 'bar',
-				'lastLogin' => null,
-				'displayname' => null,
-				'quota' => null,
-				'subadmin' => array(),
-				'email' => null,
-				'isRestoreDisabled' => false,
-				'isAvatarAvailable' => true,
-				'isEnabled' => true,
-				'quota_bytes' => false,
-			),
-			Http::STATUS_CREATED
-		);
-		$response = $controller->create('foo', 'password', array('NewGroup', 'ExistingGroup'));
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testCreateSuccessfulWithGroupSubAdmin() {
-		$controller = $this->getController(false);
-		$user = $this->createMock(IUser::class);
-		$this->userSession
-			->expects($this->once())
-			->method('getUser')
-			->will($this->returnValue($user));
-		$newUser = $this->createMock(IUser::class);
-		$newUser
-			->method('getHome')
-			->will($this->returnValue('/home/user'));
-		$newUser
-			->method('getHome')
-			->will($this->returnValue('/home/user'));
-		$newUser
-			->method('getUID')
-			->will($this->returnValue('foo'));
-		$newUser
-			->expects($this->once())
-			->method('getBackendClassName')
-			->will($this->returnValue('bar'));
-		$subGroup1 = $this->createMock(IGroup::class);
-		$newUser->expects($this->any())
-			->method('isEnabled')
-			->willReturn(true);
-		$subGroup1
-			->expects($this->any())
-			->method('getGID')
-			->will($this->returnValue('SubGroup1'));
-		$subGroup1
-			->expects($this->once())
-			->method('addUser')
-			->with($user);
-		$this->userManager
-			->expects($this->once())
-			->method('createUser')
-			->will($this->returnValue($newUser));
-		$this->groupManager
-			->expects($this->once())
-			->method('getUserGroupNames')
-			->with($user)
-			->will($this->onConsecutiveCalls(array('SubGroup1' =>
-				array('displayName' => 'SubGroup1')
-			)));
-		$this->groupManager
-			->expects($this->once())
-			->method('getUserGroupNames')
-			->with($newUser)
-			->will($this->onConsecutiveCalls(['SubGroup1']));
-
-		$subadmin = $this->createMock(\OC\SubAdmin::class);
-		$subadmin->expects($this->atLeastOnce())
-			->method('getSubAdminsGroupsName')
-			->with($user)
-			->willReturnMap([
-				[$user, [$subGroup1]],
-				[$newUser, []],
-			]);
-		$subadmin->expects($this->atLeastOnce())
-			->method('isSubAdminofGroup')
-			->willReturnMap([
-				[$user, $subGroup1, true],
-			]);
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-		$this->groupManager->expects($this->atLeastOnce())
-			->method('get')
-			->willReturnMap([
-				['SubGroup1', $subGroup1],
-			]);
-
-		$expectedResponse = new DataResponse(
-			array(
-				'name' => 'foo',
-				'groups' => array('SubGroup1' => array('displayName' => 'SubGroup1')),
-				'storageLocation' => '/home/user',
-				'backend' => 'bar',
-				'lastLogin' => 0,
-				'displayname' => null,
-				'quota' => null,
-				'subadmin' => [],
-				'email' => null,
-				'isRestoreDisabled' => false,
-				'isAvatarAvailable' => true,
-				'isEnabled' => true,
-				'quota_bytes' => false,
-			),
-			Http::STATUS_CREATED
-		);
-		$response = $controller->create('foo', 'password', ['SubGroup1', 'ExistingGroup']);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testCreateUnsuccessfulAdmin() {
-		$controller = $this->getController(true);
-
-		$this->userManager
-			->method('createUser')
-			->will($this->throwException(new \Exception()));
-
-		$expectedResponse = new DataResponse(
-			array(
-				'message' => 'Unable to create user.'
-			),
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $controller->create('foo', 'password', array());
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testCreateUnsuccessfulSubAdminNoGroup() {
-		$controller = $this->getController(false);
-		$user = $this->createMock(IUser::class);
-		$user->expects($this->any())
-			->method('getUID')
-			->will($this->returnValue('username'));
-		$this->userSession->expects($this->once())
-			->method('getUser')
-			->will($this->returnValue($user));
-
-		$this->userManager->expects($this->never())
-			->method('createUser');
-
-		$expectedResponse = new DataResponse(
-			[
-				'message' => 'No valid group selected'
-			],
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $controller->create('foo', 'password', []);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testCreateUnsuccessfulSubAdmin() {
-		$controller = $this->getController(false);
-		$user = $this->createMock(IUser::class);
-		$user->expects($this->any())
-			->method('getUID')
-			->will($this->returnValue('username'));
-		$this->userSession->expects($this->once())
-			->method('getUser')
-			->will($this->returnValue($user));
-
-		$this->userManager
-			->method('createUser')
-			->will($this->throwException(new \Exception()));
-
-		$subgroup1 = $this->createMock(IGroup::class);
-		$subgroup2 = $this->createMock(IGroup::class);
-		$subadmin = $this->createMock(\OC\SubAdmin::class);
-		$subadmin->expects($this->atLeastOnce())
-			->method('isSubAdminofGroup')
-			->willReturnMap([
-				[$user, $subgroup1, true],
-				[$user, $subgroup2, true],
-			]);
-		$this->groupManager->expects($this->any())
-			->method('getSubAdmin')
-			->willReturn($subadmin);
-		$this->groupManager->expects($this->atLeastOnce())
-			->method('get')
-			->willReturnMap([
-				['SubGroup1', $subgroup1],
-				['SubGroup2', $subgroup2],
-			]);
-
-		$expectedResponse = new DataResponse(
-			[
-				'message' => 'Unable to create user.'
-			],
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $controller->create('foo', 'password', array('SubGroup1', 'SubGroup2'));
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testDestroySelfAdmin() {
-		$controller = $this->getController(true);
-
-		$user = $this->createMock(User::class);
-		$user
-			->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('myself'));
-		$this->userSession
-			->method('getUser')
-			->will($this->returnValue($user));
-
-		$expectedResponse = new DataResponse(
-			array(
-				'status' => 'error',
-				'data' => array(
-					'message' => 'Unable to delete user.'
-				)
-			),
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $controller->destroy('myself');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testDestroySelfSubadmin() {
-		$controller = $this->getController(false);
-
-		$user = $this->createMock(User::class);
-		$user
-			->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('myself'));
-		$this->userSession
-			->method('getUser')
-			->will($this->returnValue($user));
-
-		$expectedResponse = new DataResponse(
-			array(
-				'status' => 'error',
-				'data' => array(
-					'message' => 'Unable to delete user.'
-				)
-			),
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $controller->destroy('myself');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testDestroyAdmin() {
-		$controller = $this->getController(true);
-
-		$user = $this->createMock(User::class);
-		$user
-			->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('Admin'));
-		$toDeleteUser = $this->createMock(User::class);
-		$toDeleteUser
-			->expects($this->once())
-			->method('delete')
-			->will($this->returnValue(true));
-		$this->userSession
-			->method('getUser')
-			->will($this->returnValue($user));
-		$this->userManager
-			->method('get')
-			->with('UserToDelete')
-			->will($this->returnValue($toDeleteUser));
-
-		$expectedResponse = new DataResponse(
-			array(
-				'status' => 'success',
-				'data' => array(
-					'username' => 'UserToDelete'
-				)
-			),
-			Http::STATUS_NO_CONTENT
-		);
-		$response = $controller->destroy('UserToDelete');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testDestroySubAdmin() {
-		$controller = $this->getController(false);
-		$user = $this->createMock(User::class);
-		$user
-			->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('myself'));
-		$this->userSession
-			->method('getUser')
-			->will($this->returnValue($user));
-
-		$user = $this->createMock(User::class);
-		$toDeleteUser = $this->createMock(User::class);
-		$toDeleteUser
-			->expects($this->once())
-			->method('delete')
-			->will($this->returnValue(true));
-		$this->userSession
-			->method('getUser')
-			->will($this->returnValue($user));
-		$this->userManager
-			->method('get')
-			->with('UserToDelete')
-			->will($this->returnValue($toDeleteUser));
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin->expects($this->once())
-			->method('isUserAccessible')
-			->with($user, $toDeleteUser)
-			->will($this->returnValue(true));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'success',
-				'data' => [
-					'username' => 'UserToDelete'
-				]
-			],
-			Http::STATUS_NO_CONTENT
-		);
-		$response = $controller->destroy('UserToDelete');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testDestroyUnsuccessfulAdmin() {
-		$controller = $this->getController(true);
-
-		$user = $this->createMock(User::class);
-		$user
-			->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('Admin'));
-		$toDeleteUser = $this->createMock(User::class);
-		$toDeleteUser
-			->expects($this->once())
-			->method('delete')
-			->will($this->returnValue(false));
-		$this->userSession
-			->method('getUser')
-			->will($this->returnValue($user));
-		$this->userManager
-			->method('get')
-			->with('UserToDelete')
-			->will($this->returnValue($toDeleteUser));
-
-		$expectedResponse = new DataResponse(
-			array(
-				'status' => 'error',
-				'data' => array(
-					'message' => 'Unable to delete user.'
-				)
-			),
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $controller->destroy('UserToDelete');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testDestroyUnsuccessfulSubAdmin() {
-		$controller = $this->getController(false);
-		$user = $this->createMock(User::class);
-		$user
-			->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('myself'));
-		$this->userSession
-			->method('getUser')
-			->will($this->returnValue($user));
-
-		$toDeleteUser = $this->createMock(User::class);
-		$toDeleteUser
-			->expects($this->once())
-			->method('delete')
-			->will($this->returnValue(false));
-		$this->userSession
-			->method('getUser')
-			->will($this->returnValue($user));
-		$this->userManager
-			->method('get')
-			->with('UserToDelete')
-			->will($this->returnValue($toDeleteUser));
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin->expects($this->once())
-			->method('isUserAccessible')
-			->with($user, $toDeleteUser)
-			->will($this->returnValue(true));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'error',
-				'data' => [
-					'message' => 'Unable to delete user.'
-				]
-			],
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $controller->destroy('UserToDelete');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testDestroyNotAccessibleToSubAdmin() {
-		$controller = $this->getController(false);
-
-		$user = $this->createMock(User::class);
-		$user
-			->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('myself'));
-		$this->userSession
-			->method('getUser')
-			->will($this->returnValue($user));
-
-		$toDeleteUser = $this->createMock(User::class);
-		$this->userSession
-			->method('getUser')
-			->will($this->returnValue($user));
-		$this->userManager
-			->method('get')
-			->with('UserToDelete')
-			->will($this->returnValue($toDeleteUser));
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin->expects($this->once())
-			->method('isUserAccessible')
-			->with($user, $toDeleteUser)
-			->will($this->returnValue(false));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'error',
-				'data' => [
-					'message' => 'Authentication error'
-				]
-			],
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $controller->destroy('UserToDelete');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	/**
-	 * test if an invalid mail result in a failure response
-	 */
-	public function testCreateUnsuccessfulWithInvalidEmailAdmin() {
-		$controller = $this->getController(true);
-
-		$expectedResponse = new DataResponse([
-				'message' => 'Invalid mail address',
-			],
-			Http::STATUS_UNPROCESSABLE_ENTITY
-		);
-		$response = $controller->create('foo', 'password', [], 'invalidMailAdress');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	/**
-	 * test if a valid mail result in a successful mail send
-	 */
-	public function testCreateSuccessfulWithValidEmailAdmin() {
-		$controller = $this->getController(true);
-		$this->mailer
-			->expects($this->at(0))
-			->method('validateMailAddress')
-			->with('validMail@Adre.ss')
-			->will($this->returnValue(true));
-
-		$user = $this->createMock(User::class);
-		$user
-			->method('getHome')
-			->will($this->returnValue('/home/user'));
-		$user
-			->method('getHome')
-			->will($this->returnValue('/home/user'));
-		$user
-			->method('getUID')
-			->will($this->returnValue('foo'));
-		$user
-			->method('getDisplayName')
-			->will($this->returnValue('foo'));
-		$user
-			->expects($this->once())
-			->method('getBackendClassName')
-			->will($this->returnValue('bar'));
-
-		$emailTemplate = $this->createMock(IEMailTemplate::class);
-		$this->newUserMailHelper
-			->expects($this->at(0))
-			->method('generateTemplate')
-			->with($user, false)
-			->willReturn($emailTemplate);
-		$this->newUserMailHelper
-			->expects($this->at(1))
-			->method('sendMail')
-			->with($user, $emailTemplate);
-
-		$this->userManager
-			->expects($this->once())
-			->method('createUser')
-			->will($this->onConsecutiveCalls($user));
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin->expects($this->once())
-			->method('getSubAdminsGroupsName')
-			->with($user)
-			->will($this->returnValue([]));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$response = $controller->create('foo', 'password', [], 'validMail@Adre.ss');
-		$this->assertEquals(Http::STATUS_CREATED, $response->getStatus());
-	}
-
-	private function mockUser($userId = 'foo', $displayName = 'M. Foo',
-							  $lastLogin = 500, $home = '/home/foo',
-							  $backend = 'OC_User_Database', $enabled = true) {
-		$user = $this->createMock(User::class);
-		$user
-			->expects($this->any())
-			->method('getUID')
-			->will($this->returnValue($userId));
-		$user
-			->expects($this->once())
-			->method('getDisplayName')
-			->will($this->returnValue($displayName));
-		$user
-			->method('getLastLogin')
-			->will($this->returnValue($lastLogin));
-		$user
-			->method('getHome')
-			->will($this->returnValue($home));
-		$user
-			->expects($this->once())
-			->method('getBackendClassName')
-			->will($this->returnValue($backend));
-		$user->expects($this->any())
-			->method('isEnabled')
-			->willReturn($enabled);
-
-		$result = [
-			'name' => $userId,
-			'displayname' => $displayName,
-			'groups' => null,
-			'subadmin' => array(),
-			'quota' => null,
-			'storageLocation' => $home,
-			'lastLogin' => $lastLogin * 1000,
-			'backend' => $backend,
-			'email' => null,
-			'isRestoreDisabled' => false,
-			'isAvatarAvailable' => true,
-			'isEnabled' => $enabled,
-			'quota_bytes' => false,
-		];
-
-		return [$user, $result];
-	}
-
-	public function testRestorePossibleWithoutEncryption() {
-		$controller = $this->getController(true);
-
-		list($user, $expectedResult) = $this->mockUser();
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin->expects($this->once())
-			->method('getSubAdminsGroupsName')
-			->with($user)
-			->will($this->returnValue([]));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$result = self::invokePrivate($controller, 'formatUserForIndex', [$user]);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testRestorePossibleWithAdminAndUserRestore() {
-		list($user, $expectedResult) = $this->mockUser();
-
-		$this->appManager
-			->expects($this->once())
-			->method('isEnabledForUser')
-			->with(
-				$this->equalTo('encryption')
-			)
-			->will($this->returnValue(true));
-		$this->config
-			->expects($this->once())
-			->method('getAppValue')
-			->with(
-				$this->equalTo('encryption'),
-				$this->equalTo('recoveryAdminEnabled'),
-				$this->anything()
-			)
-			->will($this->returnValue('1'));
-
-		$this->config
-			->expects($this->at(1))
-			->method('getUserValue')
-			->with(
-				$this->anything(),
-				$this->equalTo('encryption'),
-				$this->equalTo('recoveryEnabled'),
-				$this->anything()
-			)
-			->will($this->returnValue('1'));
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin->expects($this->once())
-			->method('getSubAdminsGroupsName')
-			->with($user)
-			->will($this->returnValue([]));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$controller = $this->getController(true);
-		$result = self::invokePrivate($controller, 'formatUserForIndex', [$user]);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	/**
-	 * @dataProvider dataTestRestoreNotPossibleWithoutAdminRestore
-	 *
-	 * @param bool $masterKeyEnabled
-	 */
-	public function testRestoreNotPossibleWithoutAdminRestore($masterKeyEnabled) {
-		list($user, $expectedResult) = $this->mockUser();
-
-		// without the master key enabled we use per-user keys
-		$this->encryptionModule->expects($this->once())->method('needDetailedAccessList')->willReturn(!$masterKeyEnabled);
-
-		$this->appManager
-			->method('isEnabledForUser')
-			->with(
-				$this->equalTo('encryption')
-			)
-			->will($this->returnValue(true));
-
-		// without the master key enabled we use per-user keys -> restore is disabled
-		$expectedResult['isRestoreDisabled'] = !$masterKeyEnabled;
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin->expects($this->once())
-			->method('getSubAdminsGroupsName')
-			->with($user)
-			->will($this->returnValue([]));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$controller = $this->getController(true);
-		$result = self::invokePrivate($controller, 'formatUserForIndex', [$user]);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function dataTestRestoreNotPossibleWithoutAdminRestore() {
-		return [
-			[true],
-			[false]
-		];
-	}
-
-	public function testRestoreNotPossibleWithoutUserRestore() {
-		list($user, $expectedResult) = $this->mockUser();
-
-		$this->appManager
-			->expects($this->once())
-			->method('isEnabledForUser')
-			->with(
-				$this->equalTo('encryption')
-			)
-			->will($this->returnValue(true));
-		$this->config
-			->expects($this->once())
-			->method('getAppValue')
-			->with(
-				$this->equalTo('encryption'),
-				$this->equalTo('recoveryAdminEnabled'),
-				$this->anything()
-			)
-			->will($this->returnValue('1'));
-
-		$this->config
-			->expects($this->at(1))
-			->method('getUserValue')
-			->with(
-				$this->anything(),
-				$this->equalTo('encryption'),
-				$this->equalTo('recoveryEnabled'),
-				$this->anything()
-			)
-			->will($this->returnValue('0'));
-
-		$expectedResult['isRestoreDisabled'] = true;
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin->expects($this->once())
-			->method('getSubAdminsGroupsName')
-			->with($user)
-			->will($this->returnValue([]));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$controller = $this->getController(true);
-		$result = self::invokePrivate($controller, 'formatUserForIndex', [$user]);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testNoAvatar() {
-		$controller = $this->getController(true);
-
-		list($user, $expectedResult) = $this->mockUser();
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin->expects($this->once())
-			->method('getSubAdminsGroupsName')
-			->with($user)
-			->will($this->returnValue([]));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$this->avatarManager
-			->method('getAvatar')
-			->will($this->throwException(new \OCP\Files\NotFoundException()));
-		$expectedResult['isAvatarAvailable'] = false;
-
-		$result = self::invokePrivate($controller, 'formatUserForIndex', [$user]);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testStatsAdmin() {
-		$controller = $this->getController(true);
-
-		$this->userManager
-			->expects($this->at(0))
-			->method('countUsers')
-			->will($this->returnValue([128, 44]));
-
-		$expectedResponse = new DataResponse(
-			[
-				'totalUsers' => 172
-			]
-		);
-		$response = $controller->stats();
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	/**
-	 * Tests that the subadmin stats return unique users, even
-	 * when a user appears in several groups.
-	 */
-	public function testStatsSubAdmin() {
-		$controller = $this->getController(false);
-
-		$user = $this->createMock(User::class);
-
-		$this->userSession
-			->expects($this->once())
-			->method('getUser')
-			->will($this->returnValue($user));
-
-		$group1 = $this->getMockBuilder(Group::class)
-			->disableOriginalConstructor()->getMock();
-		$group1
-			->expects($this->once())
-			->method('getUsers')
-			->will($this->returnValue(['foo' => 'M. Foo', 'admin' => 'S. Admin']));
-
-		$group2 = $this->getMockBuilder(Group::class)
-			->disableOriginalConstructor()->getMock();
-		$group2
-			->expects($this->once())
-			->method('getUsers')
-			->will($this->returnValue(['bar' => 'B. Ar']));
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin
-			->expects($this->at(0))
-			->method('getSubAdminsGroupsName')
-			->will($this->returnValue([$group1, $group2]));
-		$subadmin
-			->expects($this->at(0))
-			->method('getSubAdminsGroups')
-			->will($this->returnValue([$group1, $group2]));
-
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$expectedResponse = new DataResponse(
-			[
-				'totalUsers' => 3
-			]
-		);
-
-		$response = $controller->stats();
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function dataSetDisplayName() {
-		$data = [];
-
-		$user1 = $this->createMock(IUser::class);
-		$user1->method('getUID')->willReturn('user1');
-		$user1->method('canChangeDisplayName')->willReturn(true);
-		$data[] = [$user1, $user1, false, false, true];
-
-		$user1 = $this->createMock(IUser::class);
-		$user1->method('getUID')->willReturn('user1');
-		$user1->method('canChangeDisplayName')->willReturn(false);
-		$data[] = [$user1, $user1, false, false, false];
-
-		$user1 = $this->createMock(IUser::class);
-		$user1->method('getUID')->willReturn('user1');
-		$user2 = $this->createMock(IUser::class);
-		$user2->method('getUID')->willReturn('user2');
-		$user2->method('canChangeDisplayName')->willReturn(true);
-		$data[] = [$user1, $user2, false, false, false];
-
-		$user1 = $this->createMock(IUser::class);
-		$user1->method('getUID')->willReturn('user1');
-		$user2 = $this->createMock(IUser::class);
-		$user2->method('getUID')->willReturn('user2');
-		$user2->method('canChangeDisplayName')->willReturn(true);
-		$data[] = [$user1, $user2, true, false, true];
-
-		$user1 = $this->createMock(IUser::class);
-		$user1->method('getUID')->willReturn('user1');
-		$user2 = $this->createMock(IUser::class);
-		$user2->method('getUID')->willReturn('user2');
-		$user2->method('canChangeDisplayName')->willReturn(true);
-		$data[] = [$user1, $user2, false, true, true];
-
-		return $data;
-	}
-
-	/**
-	 * @dataProvider dataSetDisplayName
-	 *
-	 * @param IUser|\PHPUnit_Framework_MockObject_MockObject $currentUser
-	 * @param IUser|\PHPUnit_Framework_MockObject_MockObject $editUser
-	 * @param bool $isAdmin
-	 * @param bool $isSubAdmin
-	 * @param bool $valid
-	 */
-	public function testSetDisplayName($currentUser, $editUser, $isAdmin, $isSubAdmin, $valid) {
-		$this->userSession
-			->expects($this->once())
-			->method('getUser')
-			->willReturn($currentUser);
-		$this->userManager
-			->expects($this->once())
-			->method('get')
-			->with($editUser->getUID())
-			->willReturn($editUser);
-		$this->accountManager->expects($this->any())->method('getUser')->willReturn([]);
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin
-			->method('isUserAccessible')
-			->with($currentUser, $editUser)
-			->willReturn($isSubAdmin);
-
-		$this->groupManager
-			->method('getSubAdmin')
-			->willReturn($subadmin);
-		$this->groupManager
-			->method('isAdmin')
-			->with($currentUser->getUID())
-			->willReturn($isAdmin);
-
-		if ($valid === true) {
-			$expectedResponse = new DataResponse(
-				[
-					'status' => 'success',
-					'data' => [
-						'message' => 'Your full name has been changed.',
-						'username' => $editUser->getUID(),
-						'displayName' => 'newDisplayName',
-					],
-				]
-			);
-		} else {
-			$expectedResponse = new DataResponse(
-				[
-					'status' => 'error',
-					'data' => [
-						'message' => 'Authentication error',
-					],
-				]
-				);
-			}
-
-		$controller = $this->getController(true);
-		$response = $controller->setDisplayName($editUser->getUID(), 'newDisplayName');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testSetDisplayNameFails() {
-		/** @var IUser|\PHPUnit_Framework_MockObject_MockObject $user */
-		$user = $this->createMock(IUser::class);
-		$user->method('canChangeDisplayname')->willReturn(true);
-		$user->method('getUID')->willReturn('user');
-		$user->expects($this->once())
-			->method('setDisplayName')
-			->with('newDisplayName')
-			->willReturn(false);
-		$user->method('getDisplayName')->willReturn('oldDisplayName');
-
-		$this->userSession
-			->expects($this->once())
-			->method('getUser')
-			->willReturn($user);
-
-		$this->userManager
-			->expects($this->once())
-			->method('get')
-			->with($user->getUID())
-			->willReturn($user);
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin
-			->method('isUserAccessible')
-			->with($user, $user)
-			->willReturn(false);
-
-		$this->groupManager
-			->method('getSubAdmin')
-			->willReturn($subadmin);
-		$this->groupManager
-			->expects($this->once())
-			->method('isAdmin')
-			->with($user->getUID())
-			->willReturn(false);
-
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'error',
-				'data' => [
-					'message' => 'Unable to change full name',
-					'displayName' => 'oldDisplayName',
-				],
-			]
-		);
-		$controller = $this->getController(true);
-		$response = $controller->setDisplayName($user->getUID(), 'newDisplayName');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
 	/**
 	 * @dataProvider dataTestSetUserSettings
 	 *
@@ -2360,158 +427,6 @@ class UsersControllerTest extends \Test\TestCase {
 		];
 	}
 
-	/**
-	 * @return array
-	 */
-	public function setEmailAddressData() {
-		return [
-			/* mailAddress,    isValid, expectsUpdate, canChangeDisplayName, responseCode */
-			[ '',              true,    true,          true,                 Http::STATUS_OK ],
-			[ 'foo@local',     true,    true,          true,                 Http::STATUS_OK],
-			[ 'foo@bar@local', false,   false,         true,                 Http::STATUS_UNPROCESSABLE_ENTITY],
-			[ 'foo@local',     true,    false,         false,                Http::STATUS_FORBIDDEN],
-		];
-	}
-	/**
-	 * @dataProvider setEmailAddressData
-	 *
-	 * @param string $mailAddress
-	 * @param bool $isValid
-	 * @param bool $expectsUpdate
-	 * @param bool $canChangeDisplayName
-	 * @param int $responseCode
-	 */
-	public function testSetEMailAddress($mailAddress, $isValid, $expectsUpdate, $canChangeDisplayName, $responseCode) {
-		$user = $this->createMock(User::class);
-		$user
-			->expects($this->any())
-			->method('getUID')
-			->will($this->returnValue('foo'));
-		$user
-			->expects($this->any())
-			->method('canChangeDisplayName')
-			->will($this->returnValue($canChangeDisplayName));
-		$user
-			->expects($expectsUpdate ? $this->once() : $this->never())
-			->method('setEMailAddress')
-			->with(
-				$this->equalTo($mailAddress)
-			);
-		$user->method('getEMailAddress')->willReturn('oldEmailAddress');
-		$this->mailer
-			->expects($this->any())
-			->method('validateMailAddress')
-			->with($mailAddress)
-			->willReturn($isValid);
-		if ($isValid) {
-			$user->expects($this->atLeastOnce())
-				->method('canChangeDisplayName')
-				->willReturn(true);
-			$this->userManager
-				->expects($this->atLeastOnce())
-				->method('get')
-				->with('foo')
-				->will($this->returnValue($user));
-		}
-		$controller = $this->getController(true);
-		$response = $controller->setEMailAddress($user->getUID(), $mailAddress);
-		$this->assertSame($responseCode, $response->getStatus());
-	}
-
-	public function testCreateUnsuccessfulWithoutPasswordAndEmail() {
-		$controller = $this->getController(true);
-
-		$expectedResponse = new DataResponse(
-			array(
-				'message' => 'To send a password link to the user an email address is required.'
-			),
-			Http::STATUS_UNPROCESSABLE_ENTITY
-		);
-		$response = $controller->create('foo', '', array(), '');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-
-
-	public function testCreateSuccessfulWithoutPasswordAndWithEmail() {
-		$user = $this->createMock(User::class);
-		$user
-			->method('getHome')
-			->willReturn('/home/user');
-		$user
-			->method('getUID')
-			->willReturn('foo');
-		$user
-			->method('getDisplayName')
-			->willReturn('John Doe');
-		$user
-			->method('getEmailAddress')
-			->willReturn('abc@example.org');
-		$user
-			->expects($this->once())
-			->method('getBackendClassName')
-			->willReturn('bar');
-		$user
-			->method('isEnabled')
-			->willReturn(true);
-
-		$this->userManager
-			->expects($this->once())
-			->method('createUser')
-			->will($this->onConsecutiveCalls($user));
-
-		$subadmin = $this->getMockBuilder(SubAdmin::class)
-			->disableOriginalConstructor()
-			->getMock();
-		$subadmin
-			->expects($this->any())
-			->method('getSubAdminsGroupsName')
-			->with($user)
-			->will($this->returnValue([]));
-		$this->groupManager
-			->expects($this->any())
-			->method('getSubAdmin')
-			->will($this->returnValue($subadmin));
-
-		$controller = $this->getController(true);
-		$this->mailer
-			->expects($this->at(0))
-			->method('validateMailAddress')
-			->with('abc@example.org')
-			->will($this->returnValue(true));
-		$emailTemplate = $this->createMock(IEMailTemplate::class);
-		$this->newUserMailHelper
-			->expects($this->at(0))
-			->method('generateTemplate')
-			->with($user, true)
-			->willReturn($emailTemplate);
-		$this->newUserMailHelper
-			->expects($this->at(1))
-			->method('sendMail')
-			->with($user, $emailTemplate);
-
-		$expectedResponse = new DataResponse(
-			[
-				'name' => 'foo',
-				'groups' => null,
-				'storageLocation' => '/home/user',
-				'backend' => 'bar',
-				'lastLogin' => 0,
-				'displayname' => 'John Doe',
-				'quota' => null,
-				'quota_bytes' => false,
-				'subadmin' => array(),
-				'email' => 'abc@example.org',
-				'isRestoreDisabled' => false,
-				'isAvatarAvailable' => true,
-				'isEnabled' => true,
-			],
-			Http::STATUS_CREATED
-		);
-		$response = $controller->create('foo', '', array(), 'abc@example.org');
-		$this->assertEquals($expectedResponse, $response);
-	}
-
 	/**
 	 * @param string $account
 	 * @param string $type
@@ -2598,425 +513,4 @@ class UsersControllerTest extends \Test\TestCase {
 		$this->assertSame(Http::STATUS_BAD_REQUEST, $result->getStatus());
 	}
 
-	public function testDisableUserFailsDueSameUser() {
-		$user = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('abc'));
-		$this->userSession
-			->expects($this->once())
-			->method('getUser')
-			->will($this->returnValue($user));
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'error',
-				'data' => [
-					'message' => 'Error while disabling user.',
-				],
-			],
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $this->getController(true)->setEnabled('abc', false);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testDisableUserFailsDueNoAdminAndNoSubadmin() {
-		$user = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('def'));
-		$this->userSession
-			->expects($this->exactly(2))
-			->method('getUser')
-			->will($this->returnValue($user));
-		$user2 = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user2->expects($this->never())
-			->method('setEnabled');
-		$this->userManager
-			->expects($this->once())
-			->method('get')
-			->with('abc')
-			->willReturn($user2);
-
-		$subadmin = $this->createMock(SubAdmin::class);
-		$subadmin->expects($this->once())
-			->method('isUserAccessible')
-			->will($this->returnValue(false));
-		$this->groupManager
-			->expects($this->once())
-			->method('getSubAdmin')
-			->willReturn($subadmin);
-
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'error',
-				'data' => [
-					'message' => 'Authentication error',
-				],
-			],
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $this->getController(false)->setEnabled('abc', false);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testDisableUserFailsDueNoUser() {
-		$user = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('def'));
-		$this->userSession
-			->expects($this->exactly(1))
-			->method('getUser')
-			->will($this->returnValue($user));
-		$this->userManager
-			->expects($this->once())
-			->method('get')
-			->with('abc')
-			->willReturn(null);
-
-		$this->groupManager
-			->expects($this->never())
-			->method('getSubAdmin');
-
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'error',
-				'data' => [
-					'message' => 'Error while disabling user.',
-				],
-			],
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $this->getController(true)->setEnabled('abc', false);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testDisableUserFailsDueNoUserForSubAdmin() {
-		$user = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('def'));
-		$this->userSession
-			->expects($this->exactly(1))
-			->method('getUser')
-			->will($this->returnValue($user));
-		$this->userManager
-			->expects($this->once())
-			->method('get')
-			->with('abc')
-			->willReturn(null);
-
-		$this->groupManager
-			->expects($this->never())
-			->method('getSubAdmin');
-
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'error',
-				'data' => [
-					'message' => 'Error while disabling user.',
-				],
-			],
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $this->getController(false)->setEnabled('abc', false);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testDisableUserSuccessForAdmin() {
-		$user = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('def'));
-		$this->userSession
-			->expects($this->exactly(1))
-			->method('getUser')
-			->will($this->returnValue($user));
-		$user2 = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user2->expects($this->once())
-			->method('setEnabled')
-			->with(false);
-		$this->userManager
-			->expects($this->once())
-			->method('get')
-			->with('abc')
-			->willReturn($user2);
-
-		$this->groupManager
-			->expects($this->never())
-			->method('getSubAdmin');
-
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'success',
-				'data' => [
-					'username' => 'abc',
-					'enabled' => 0,
-				],
-			]
-		);
-		$response = $this->getController(true)->setEnabled('abc', false);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testDisableUserSuccessForSubAdmin() {
-		$user = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('def'));
-		$this->userSession
-			->expects($this->exactly(2))
-			->method('getUser')
-			->will($this->returnValue($user));
-		$user2 = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user2->expects($this->once())
-			->method('setEnabled');
-		$this->userManager
-			->expects($this->once())
-			->method('get')
-			->with('abc')
-			->willReturn($user2);
-
-		$subadmin = $this->createMock(SubAdmin::class);
-		$subadmin->expects($this->once())
-			->method('isUserAccessible')
-			->will($this->returnValue(true));
-		$this->groupManager
-			->expects($this->once())
-			->method('getSubAdmin')
-			->willReturn($subadmin);
-
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'success',
-				'data' => [
-					'username' => 'abc',
-					'enabled' => 0,
-				],
-			]
-		);
-		$response = $this->getController(false)->setEnabled('abc', false);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testEnableUserFailsDueSameUser() {
-		$user = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('abc'));
-		$this->userSession
-			->expects($this->once())
-			->method('getUser')
-			->will($this->returnValue($user));
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'error',
-				'data' => [
-					'message' => 'Error while enabling user.',
-				],
-			],
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $this->getController(true)->setEnabled('abc', true);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testEnableUserFailsDueNoAdminAndNoSubadmin() {
-		$user = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('def'));
-		$this->userSession
-			->expects($this->exactly(2))
-			->method('getUser')
-			->will($this->returnValue($user));
-		$user2 = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user2->expects($this->never())
-			->method('setEnabled');
-		$this->userManager
-			->expects($this->once())
-			->method('get')
-			->with('abc')
-			->willReturn($user2);
-
-		$subadmin = $this->createMock(SubAdmin::class);
-		$subadmin->expects($this->once())
-			->method('isUserAccessible')
-			->will($this->returnValue(false));
-		$this->groupManager
-			->expects($this->once())
-			->method('getSubAdmin')
-			->willReturn($subadmin);
-
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'error',
-				'data' => [
-					'message' => 'Authentication error',
-				],
-			],
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $this->getController(false)->setEnabled('abc', true);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testEnableUserFailsDueNoUser() {
-		$user = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('def'));
-		$this->userSession
-			->expects($this->exactly(1))
-			->method('getUser')
-			->will($this->returnValue($user));
-		$this->userManager
-			->expects($this->once())
-			->method('get')
-			->with('abc')
-			->willReturn(null);
-
-		$this->groupManager
-			->expects($this->never())
-			->method('getSubAdmin');
-
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'error',
-				'data' => [
-					'message' => 'Error while enabling user.',
-				],
-			],
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $this->getController(true)->setEnabled('abc', true);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testEnableUserFailsDueNoUserForSubAdmin() {
-		$user = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('def'));
-		$this->userSession
-			->expects($this->exactly(1))
-			->method('getUser')
-			->will($this->returnValue($user));
-		$this->userManager
-			->expects($this->once())
-			->method('get')
-			->with('abc')
-			->willReturn(null);
-
-		$this->groupManager
-			->expects($this->never())
-			->method('getSubAdmin');
-
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'error',
-				'data' => [
-					'message' => 'Error while enabling user.',
-				],
-			],
-			Http::STATUS_FORBIDDEN
-		);
-		$response = $this->getController(false)->setEnabled('abc', true);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testEnableUserSuccessForAdmin() {
-		$user = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('def'));
-		$this->userSession
-			->expects($this->exactly(1))
-			->method('getUser')
-			->will($this->returnValue($user));
-		$user2 = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user2->expects($this->once())
-			->method('setEnabled');
-		$this->userManager
-			->expects($this->once())
-			->method('get')
-			->with('abc')
-			->willReturn($user2);
-
-		$this->groupManager
-			->expects($this->never())
-			->method('getSubAdmin');
-
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'success',
-				'data' => [
-					'username' => 'abc',
-					'enabled' => 1,
-				],
-			]
-		);
-		$response = $this->getController(true)->setEnabled('abc', true);
-		$this->assertEquals($expectedResponse, $response);
-	}
-
-	public function testEnableUserSuccessForSubAdmin() {
-		$user = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user->expects($this->once())
-			->method('getUID')
-			->will($this->returnValue('def'));
-		$this->userSession
-			->expects($this->exactly(2))
-			->method('getUser')
-			->will($this->returnValue($user));
-		$user2 = $this->getMockBuilder(User::class)
-			->disableOriginalConstructor()->getMock();
-		$user2->expects($this->once())
-			->method('setEnabled')
-			->with(true);
-		$this->userManager
-			->expects($this->once())
-			->method('get')
-			->with('abc')
-			->willReturn($user2);
-
-		$subadmin = $this->createMock(SubAdmin::class);
-		$subadmin->expects($this->once())
-			->method('isUserAccessible')
-			->will($this->returnValue(true));
-		$this->groupManager
-			->expects($this->once())
-			->method('getSubAdmin')
-			->willReturn($subadmin);
-
-		$expectedResponse = new DataResponse(
-			[
-				'status' => 'success',
-				'data' => [
-					'username' => 'abc',
-					'enabled' => 1,
-				],
-			]
-		);
-		$response = $this->getController(false)->setEnabled('abc', true);
-		$this->assertEquals($expectedResponse, $response);
-	}
 }
-- 
cgit v1.2.3