Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2020-04-02 20:37:40 +0300
committernpmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>2020-04-11 09:36:20 +0300
commitc20321e7e0e4c3d304ae7a56c609567b4a80ec55 (patch)
tree4df4ec04e59182e84d159473035b65b6c77a011b /apps/provisioning_api
parent5252836f44c79d4aad86f4de46be028e68f728cf (diff)
Add tests for encoded group id
Signed-off-by: Julius Härtl <jus@bitgrid.net> Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
Diffstat (limited to 'apps/provisioning_api')
-rw-r--r--apps/provisioning_api/tests/Controller/GroupsControllerTest.php84
1 files changed, 74 insertions, 10 deletions
diff --git a/apps/provisioning_api/tests/Controller/GroupsControllerTest.php b/apps/provisioning_api/tests/Controller/GroupsControllerTest.php
index 0ed6d58e217..34bcdd4e645 100644
--- a/apps/provisioning_api/tests/Controller/GroupsControllerTest.php
+++ b/apps/provisioning_api/tests/Controller/GroupsControllerTest.php
@@ -75,13 +75,13 @@ class GroupsControllerTest extends \Test\TestCase {
$this->userSession = $this->createMock(IUserSession::class);
$this->accountManager = $this->createMock(AccountManager::class);
$this->logger = $this->createMock(ILogger::class);
-
+
$this->subAdminManager = $this->createMock(SubAdmin::class);
$this->groupManager
->method('getSubAdmin')
->willReturn($this->subAdminManager);
-
+
$this->api = $this->getMockBuilder(GroupsController::class)
->setConstructorArgs([
'provisioning_api',
@@ -256,7 +256,6 @@ class GroupsControllerTest extends \Test\TestCase {
'disabled' => 11,
'canAdd' => true,
'canRemove' => true
-
]
]], $result->getData());
}
@@ -285,7 +284,7 @@ class GroupsControllerTest extends \Test\TestCase {
$this->assertEquals(['users' => ['user1', 'user2']], $result->getData());
}
-
+
public function testGetGroupAsIrrelevantSubadmin() {
$this->expectException(\OCP\AppFramework\OCS\OCSException::class);
$this->expectExceptionCode(403);
@@ -330,7 +329,7 @@ class GroupsControllerTest extends \Test\TestCase {
$this->assertEquals(['users' => ['user1', 'user2']], $result->getData());
}
-
+
public function testGetGroupNonExisting() {
$this->expectException(\OCP\AppFramework\OCS\OCSException::class);
$this->expectExceptionMessage('The requested group could not be found');
@@ -341,7 +340,7 @@ class GroupsControllerTest extends \Test\TestCase {
$this->api->getGroup($this->getUniqueID());
}
-
+
public function testGetSubAdminsOfGroupsNotExists() {
$this->expectException(\OCP\AppFramework\OCS\OCSException::class);
$this->expectExceptionMessage('Group does not exist');
@@ -388,7 +387,7 @@ class GroupsControllerTest extends \Test\TestCase {
$this->assertEquals([], $result->getData());
}
-
+
public function testAddGroupEmptyGroup() {
$this->expectException(\OCP\AppFramework\OCS\OCSException::class);
$this->expectExceptionMessage('Invalid group name');
@@ -397,7 +396,7 @@ class GroupsControllerTest extends \Test\TestCase {
$this->api->addGroup('');
}
-
+
public function testAddGroupExistingGroup() {
$this->expectException(\OCP\AppFramework\OCS\OCSException::class);
$this->expectExceptionCode(102);
@@ -438,7 +437,7 @@ class GroupsControllerTest extends \Test\TestCase {
$this->api->addGroup('Iñtërnâtiônàlizætiøn');
}
-
+
public function testDeleteGroupNonExisting() {
$this->expectException(\OCP\AppFramework\OCS\OCSException::class);
$this->expectExceptionCode(101);
@@ -446,7 +445,7 @@ class GroupsControllerTest extends \Test\TestCase {
$this->api->deleteGroup('NonExistingGroup');
}
-
+
public function testDeleteAdminGroup() {
$this->expectException(\OCP\AppFramework\OCS\OCSException::class);
$this->expectExceptionCode(102);
@@ -478,6 +477,25 @@ class GroupsControllerTest extends \Test\TestCase {
$this->api->deleteGroup('ExistingGroup');
}
+ public function testDeleteGroupEncoding() {
+ $this->groupManager
+ ->method('groupExists')
+ ->with('ExistingGroup A/B')
+ ->willReturn('true');
+
+ $group = $this->createGroup('ExistingGroup');
+ $this->groupManager
+ ->method('get')
+ ->with('ExistingGroup A/B')
+ ->willReturn($group);
+ $group
+ ->expects($this->once())
+ ->method('delete')
+ ->willReturn(true);
+
+ $this->api->deleteGroup(urlencode('ExistingGroup A/B'));
+ }
+
public function testGetGroupUsersDetails() {
$gid = 'ncg1';
@@ -523,4 +541,50 @@ class GroupsControllerTest extends \Test\TestCase {
$this->api->getGroupUsersDetails($gid);
}
+
+ public function testGetGroupUsersDetailsEncoded() {
+ $gid = 'Department A/B C/D';
+
+ $this->asAdmin();
+ $this->useAccountManager();
+
+ $users = [
+ 'ncu1' => $this->createUser('ncu1'), # regular
+ 'ncu2' => $this->createUser('ncu2'), # the zombie
+ ];
+ $users['ncu2']->expects($this->atLeastOnce())
+ ->method('getHome')
+ ->willThrowException(new NoUserException());
+
+ $this->userManager->expects($this->any())
+ ->method('get')
+ ->willReturnCallback(function(string $uid) use ($users) {
+ return isset($users[$uid]) ? $users[$uid] : null;
+ });
+
+ $group = $this->createGroup($gid);
+ $group->expects($this->once())
+ ->method('searchUsers')
+ ->with('', null, 0)
+ ->willReturn(array_values($users));
+
+ $this->groupManager
+ ->method('get')
+ ->with($gid)
+ ->willReturn($group);
+ $this->groupManager->expects($this->any())
+ ->method('getUserGroups')
+ ->willReturn([$group]);
+
+ /** @var \PHPUnit_Framework_MockObject_MockObject */
+ $this->subAdminManager->expects($this->any())
+ ->method('isSubAdminOfGroup')
+ ->willReturn(false);
+ $this->subAdminManager->expects($this->any())
+ ->method('getSubAdminsGroups')
+ ->willReturn([]);
+
+
+ $this->api->getGroupUsersDetails(urlencode($gid));
+ }
}