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>
This commit is contained in:
Julius Härtl 2020-04-02 19:37:40 +02:00 committed by npmbuildbot[bot]
parent 5252836f44
commit c20321e7e0
5 changed files with 82 additions and 18 deletions

View File

@ -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));
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long