mirror of
https://github.com/nextcloud/server.git
synced 2026-02-03 20:41:22 -05:00
chore: Adapt provisioning_api tests to code changes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This commit is contained in:
parent
af760d174f
commit
173a338f76
1 changed files with 76 additions and 135 deletions
|
|
@ -39,7 +39,6 @@ use OCP\L10N\IFactory;
|
|||
use OCP\Mail\IEMailTemplate;
|
||||
use OCP\Security\Events\GenerateSecurePasswordEvent;
|
||||
use OCP\Security\ISecureRandom;
|
||||
use OCP\User\Backend\ISetDisplayNameBackend;
|
||||
use OCP\UserInterface;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
|
@ -1635,6 +1634,10 @@ class UsersControllerTest extends TestCase {
|
|||
$targetUser = $this->getMockBuilder(IUser::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$targetUser
|
||||
->expects($this->once())
|
||||
->method('canChangeDisplayName')
|
||||
->willReturn(true);
|
||||
$this->userSession
|
||||
->expects($this->once())
|
||||
->method('getUser')
|
||||
|
|
@ -1644,10 +1647,6 @@ class UsersControllerTest extends TestCase {
|
|||
->method('get')
|
||||
->with('UserToEdit')
|
||||
->willReturn($targetUser);
|
||||
$targetUser
|
||||
->expects($this->once())
|
||||
->method('getBackend')
|
||||
->willReturn($this->createMock(ISetDisplayNameBackend::class));
|
||||
$targetUser
|
||||
->expects($this->once())
|
||||
->method('setDisplayName')
|
||||
|
|
@ -1672,6 +1671,14 @@ class UsersControllerTest extends TestCase {
|
|||
$targetUser = $this->getMockBuilder(IUser::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$targetUser
|
||||
->expects($this->atLeastOnce())
|
||||
->method('canEditProperty')
|
||||
->willReturnCallback(
|
||||
fn (string $property): bool => match($property) {
|
||||
IAccountManager::PROPERTY_EMAIL => true,
|
||||
default => false,
|
||||
});
|
||||
$this->userSession
|
||||
->expects($this->once())
|
||||
->method('getUser')
|
||||
|
|
@ -1690,12 +1697,6 @@ class UsersControllerTest extends TestCase {
|
|||
->method('getUID')
|
||||
->willReturn('UID');
|
||||
|
||||
$backend = $this->createMock(UserInterface::class);
|
||||
$targetUser
|
||||
->expects($this->any())
|
||||
->method('getBackend')
|
||||
->willReturn($backend);
|
||||
|
||||
$this->config->method('getSystemValue')->willReturnCallback(fn (string $key, mixed $default) => $default);
|
||||
|
||||
$this->assertEquals([], $this->api->editUser('UserToEdit', 'email', 'demo@nextcloud.com')->getData());
|
||||
|
|
@ -1726,12 +1727,6 @@ class UsersControllerTest extends TestCase {
|
|||
->method('getUID')
|
||||
->willReturn('UID');
|
||||
|
||||
$backend = $this->createMock(UserInterface::class);
|
||||
$targetUser
|
||||
->expects($this->any())
|
||||
->method('getBackend')
|
||||
->willReturn($backend);
|
||||
|
||||
$userAccount = $this->createMock(IAccount::class);
|
||||
|
||||
$this->accountManager
|
||||
|
|
@ -1772,11 +1767,6 @@ class UsersControllerTest extends TestCase {
|
|||
->method('getUID')
|
||||
->willReturn('UID');
|
||||
|
||||
$backend = $this->createMock(UserInterface::class);
|
||||
$targetUser
|
||||
->expects($this->any())
|
||||
->method('getBackend')
|
||||
->willReturn($backend);
|
||||
$targetUser
|
||||
->expects($this->any())
|
||||
->method('getSystemEMailAddress')
|
||||
|
|
@ -1824,12 +1814,6 @@ class UsersControllerTest extends TestCase {
|
|||
->method('getUID')
|
||||
->willReturn('UID');
|
||||
|
||||
$backend = $this->createMock(UserInterface::class);
|
||||
$targetUser
|
||||
->expects($this->any())
|
||||
->method('getBackend')
|
||||
->willReturn($backend);
|
||||
|
||||
$property = $this->createMock(IAccountProperty::class);
|
||||
$property->method('getValue')
|
||||
->willReturn('demo1@nextcloud.com');
|
||||
|
|
@ -1886,11 +1870,14 @@ class UsersControllerTest extends TestCase {
|
|||
->method('getUID')
|
||||
->willReturn('UID');
|
||||
|
||||
$backend = $this->createMock(UserInterface::class);
|
||||
$targetUser
|
||||
->expects($this->any())
|
||||
->method('getBackend')
|
||||
->willReturn($backend);
|
||||
->expects($this->atLeastOnce())
|
||||
->method('canEditProperty')
|
||||
->willReturnCallback(
|
||||
fn (string $property): bool => match($property) {
|
||||
IAccountManager::PROPERTY_EMAIL => true,
|
||||
default => false,
|
||||
});
|
||||
|
||||
$this->config->method('getSystemValue')->willReturnCallback(fn (string $key, mixed $default) => $default);
|
||||
|
||||
|
|
@ -1923,6 +1910,14 @@ class UsersControllerTest extends TestCase {
|
|||
->expects($this->any())
|
||||
->method('getUID')
|
||||
->willReturn('UID');
|
||||
$loggedInUser
|
||||
->expects($this->atLeastOnce())
|
||||
->method('canEditProperty')
|
||||
->willReturnCallback(
|
||||
fn (string $property): bool => match($property) {
|
||||
$propertyName => true,
|
||||
default => false,
|
||||
});
|
||||
$this->userSession
|
||||
->expects($this->once())
|
||||
->method('getUser')
|
||||
|
|
@ -4290,137 +4285,79 @@ class UsersControllerTest extends TestCase {
|
|||
|
||||
public static function dataGetEditableFields(): array {
|
||||
return [
|
||||
[false, true, ISetDisplayNameBackend::class, [
|
||||
[false, true, [
|
||||
IAccountManager::PROPERTY_ADDRESS,
|
||||
IAccountManager::PROPERTY_BIOGRAPHY,
|
||||
IAccountManager::PROPERTY_BIRTHDATE,
|
||||
IAccountManager::PROPERTY_EMAIL,
|
||||
IAccountManager::COLLECTION_EMAIL,
|
||||
IAccountManager::PROPERTY_PHONE,
|
||||
IAccountManager::PROPERTY_ADDRESS,
|
||||
IAccountManager::PROPERTY_WEBSITE,
|
||||
IAccountManager::PROPERTY_TWITTER,
|
||||
IAccountManager::PROPERTY_BLUESKY,
|
||||
IAccountManager::PROPERTY_FEDIVERSE,
|
||||
IAccountManager::PROPERTY_ORGANISATION,
|
||||
IAccountManager::PROPERTY_ROLE,
|
||||
IAccountManager::PROPERTY_HEADLINE,
|
||||
IAccountManager::PROPERTY_BIOGRAPHY,
|
||||
IAccountManager::PROPERTY_ORGANISATION,
|
||||
IAccountManager::PROPERTY_PHONE,
|
||||
IAccountManager::PROPERTY_PROFILE_ENABLED,
|
||||
IAccountManager::PROPERTY_PRONOUNS,
|
||||
IAccountManager::PROPERTY_ROLE,
|
||||
IAccountManager::PROPERTY_TWITTER,
|
||||
IAccountManager::PROPERTY_BLUESKY,
|
||||
IAccountManager::PROPERTY_WEBSITE,
|
||||
IAccountManager::COLLECTION_EMAIL,
|
||||
]],
|
||||
[true, false, ISetDisplayNameBackend::class, [
|
||||
[true, false, [
|
||||
IAccountManager::PROPERTY_ADDRESS,
|
||||
IAccountManager::PROPERTY_BIOGRAPHY,
|
||||
IAccountManager::PROPERTY_BIRTHDATE,
|
||||
IAccountManager::PROPERTY_DISPLAYNAME,
|
||||
IAccountManager::COLLECTION_EMAIL,
|
||||
IAccountManager::PROPERTY_PHONE,
|
||||
IAccountManager::PROPERTY_ADDRESS,
|
||||
IAccountManager::PROPERTY_WEBSITE,
|
||||
IAccountManager::PROPERTY_TWITTER,
|
||||
IAccountManager::PROPERTY_BLUESKY,
|
||||
IAccountManager::PROPERTY_FEDIVERSE,
|
||||
IAccountManager::PROPERTY_ORGANISATION,
|
||||
IAccountManager::PROPERTY_ROLE,
|
||||
IAccountManager::PROPERTY_HEADLINE,
|
||||
IAccountManager::PROPERTY_BIOGRAPHY,
|
||||
IAccountManager::PROPERTY_ORGANISATION,
|
||||
IAccountManager::PROPERTY_PHONE,
|
||||
IAccountManager::PROPERTY_PROFILE_ENABLED,
|
||||
IAccountManager::PROPERTY_PRONOUNS,
|
||||
IAccountManager::PROPERTY_ROLE,
|
||||
IAccountManager::PROPERTY_TWITTER,
|
||||
IAccountManager::PROPERTY_BLUESKY,
|
||||
IAccountManager::PROPERTY_WEBSITE,
|
||||
IAccountManager::COLLECTION_EMAIL,
|
||||
]],
|
||||
[true, true, ISetDisplayNameBackend::class, [
|
||||
[true, true, [
|
||||
IAccountManager::PROPERTY_ADDRESS,
|
||||
IAccountManager::PROPERTY_BIOGRAPHY,
|
||||
IAccountManager::PROPERTY_BIRTHDATE,
|
||||
IAccountManager::PROPERTY_DISPLAYNAME,
|
||||
IAccountManager::PROPERTY_EMAIL,
|
||||
IAccountManager::COLLECTION_EMAIL,
|
||||
IAccountManager::PROPERTY_PHONE,
|
||||
IAccountManager::PROPERTY_ADDRESS,
|
||||
IAccountManager::PROPERTY_WEBSITE,
|
||||
IAccountManager::PROPERTY_TWITTER,
|
||||
IAccountManager::PROPERTY_BLUESKY,
|
||||
IAccountManager::PROPERTY_FEDIVERSE,
|
||||
IAccountManager::PROPERTY_ORGANISATION,
|
||||
IAccountManager::PROPERTY_ROLE,
|
||||
IAccountManager::PROPERTY_HEADLINE,
|
||||
IAccountManager::PROPERTY_BIOGRAPHY,
|
||||
IAccountManager::PROPERTY_ORGANISATION,
|
||||
IAccountManager::PROPERTY_PHONE,
|
||||
IAccountManager::PROPERTY_PROFILE_ENABLED,
|
||||
IAccountManager::PROPERTY_PRONOUNS,
|
||||
IAccountManager::PROPERTY_ROLE,
|
||||
IAccountManager::PROPERTY_TWITTER,
|
||||
IAccountManager::PROPERTY_BLUESKY,
|
||||
IAccountManager::PROPERTY_WEBSITE,
|
||||
IAccountManager::COLLECTION_EMAIL,
|
||||
]],
|
||||
[false, false, ISetDisplayNameBackend::class, [
|
||||
IAccountManager::COLLECTION_EMAIL,
|
||||
IAccountManager::PROPERTY_PHONE,
|
||||
[false, false, [
|
||||
IAccountManager::PROPERTY_ADDRESS,
|
||||
IAccountManager::PROPERTY_WEBSITE,
|
||||
IAccountManager::PROPERTY_TWITTER,
|
||||
IAccountManager::PROPERTY_BLUESKY,
|
||||
IAccountManager::PROPERTY_FEDIVERSE,
|
||||
IAccountManager::PROPERTY_ORGANISATION,
|
||||
IAccountManager::PROPERTY_ROLE,
|
||||
IAccountManager::PROPERTY_HEADLINE,
|
||||
IAccountManager::PROPERTY_BIOGRAPHY,
|
||||
IAccountManager::PROPERTY_BIRTHDATE,
|
||||
IAccountManager::PROPERTY_FEDIVERSE,
|
||||
IAccountManager::PROPERTY_HEADLINE,
|
||||
IAccountManager::PROPERTY_ORGANISATION,
|
||||
IAccountManager::PROPERTY_PHONE,
|
||||
IAccountManager::PROPERTY_PROFILE_ENABLED,
|
||||
IAccountManager::PROPERTY_PRONOUNS,
|
||||
]],
|
||||
[false, true, UserInterface::class, [
|
||||
IAccountManager::PROPERTY_EMAIL,
|
||||
IAccountManager::COLLECTION_EMAIL,
|
||||
IAccountManager::PROPERTY_PHONE,
|
||||
IAccountManager::PROPERTY_ADDRESS,
|
||||
IAccountManager::PROPERTY_WEBSITE,
|
||||
IAccountManager::PROPERTY_ROLE,
|
||||
IAccountManager::PROPERTY_TWITTER,
|
||||
IAccountManager::PROPERTY_BLUESKY,
|
||||
IAccountManager::PROPERTY_FEDIVERSE,
|
||||
IAccountManager::PROPERTY_ORGANISATION,
|
||||
IAccountManager::PROPERTY_ROLE,
|
||||
IAccountManager::PROPERTY_HEADLINE,
|
||||
IAccountManager::PROPERTY_BIOGRAPHY,
|
||||
IAccountManager::PROPERTY_PROFILE_ENABLED,
|
||||
IAccountManager::PROPERTY_PRONOUNS,
|
||||
]],
|
||||
[true, false, UserInterface::class, [
|
||||
IAccountManager::COLLECTION_EMAIL,
|
||||
IAccountManager::PROPERTY_PHONE,
|
||||
IAccountManager::PROPERTY_ADDRESS,
|
||||
IAccountManager::PROPERTY_WEBSITE,
|
||||
IAccountManager::PROPERTY_TWITTER,
|
||||
IAccountManager::PROPERTY_BLUESKY,
|
||||
IAccountManager::PROPERTY_FEDIVERSE,
|
||||
IAccountManager::PROPERTY_ORGANISATION,
|
||||
IAccountManager::PROPERTY_ROLE,
|
||||
IAccountManager::PROPERTY_HEADLINE,
|
||||
IAccountManager::PROPERTY_BIOGRAPHY,
|
||||
IAccountManager::PROPERTY_PROFILE_ENABLED,
|
||||
IAccountManager::PROPERTY_PRONOUNS,
|
||||
]],
|
||||
[true, true, UserInterface::class, [
|
||||
IAccountManager::PROPERTY_EMAIL,
|
||||
IAccountManager::COLLECTION_EMAIL,
|
||||
IAccountManager::PROPERTY_PHONE,
|
||||
IAccountManager::PROPERTY_ADDRESS,
|
||||
IAccountManager::PROPERTY_WEBSITE,
|
||||
IAccountManager::PROPERTY_TWITTER,
|
||||
IAccountManager::PROPERTY_BLUESKY,
|
||||
IAccountManager::PROPERTY_FEDIVERSE,
|
||||
IAccountManager::PROPERTY_ORGANISATION,
|
||||
IAccountManager::PROPERTY_ROLE,
|
||||
IAccountManager::PROPERTY_HEADLINE,
|
||||
IAccountManager::PROPERTY_BIOGRAPHY,
|
||||
IAccountManager::PROPERTY_PROFILE_ENABLED,
|
||||
IAccountManager::PROPERTY_PRONOUNS,
|
||||
]],
|
||||
[false, false, UserInterface::class, [
|
||||
IAccountManager::COLLECTION_EMAIL,
|
||||
IAccountManager::PROPERTY_PHONE,
|
||||
IAccountManager::PROPERTY_ADDRESS,
|
||||
IAccountManager::PROPERTY_WEBSITE,
|
||||
IAccountManager::PROPERTY_TWITTER,
|
||||
IAccountManager::PROPERTY_BLUESKY,
|
||||
IAccountManager::PROPERTY_FEDIVERSE,
|
||||
IAccountManager::PROPERTY_ORGANISATION,
|
||||
IAccountManager::PROPERTY_ROLE,
|
||||
IAccountManager::PROPERTY_HEADLINE,
|
||||
IAccountManager::PROPERTY_BIOGRAPHY,
|
||||
IAccountManager::PROPERTY_PROFILE_ENABLED,
|
||||
IAccountManager::PROPERTY_PRONOUNS,
|
||||
]],
|
||||
];
|
||||
}
|
||||
|
||||
#[\PHPUnit\Framework\Attributes\DataProvider(methodName: 'dataGetEditableFields')]
|
||||
public function testGetEditableFields(bool $allowedToChangeDisplayName, bool $allowedToChangeEmail, string $userBackend, array $expected): void {
|
||||
public function testGetEditableFields(bool $allowedToChangeDisplayName, bool $allowedToChangeEmail, array $expected): void {
|
||||
$this->config->method('getSystemValue')->willReturnCallback(fn (string $key, mixed $default) => match ($key) {
|
||||
'allow_user_to_change_display_name' => $allowedToChangeDisplayName,
|
||||
'allow_user_to_change_email' => $allowedToChangeEmail,
|
||||
|
|
@ -4431,12 +4368,16 @@ class UsersControllerTest extends TestCase {
|
|||
$this->userSession->method('getUser')
|
||||
->willReturn($user);
|
||||
|
||||
$backend = $this->createMock($userBackend);
|
||||
|
||||
$user->method('getUID')
|
||||
->willReturn('userId');
|
||||
$user->method('getBackend')
|
||||
->willReturn($backend);
|
||||
$user->method('canEditProperty')
|
||||
->willReturnCallback(
|
||||
fn (string $property): bool => match($property) {
|
||||
IAccountManager::PROPERTY_DISPLAYNAME => $allowedToChangeDisplayName,
|
||||
IAccountManager::PROPERTY_EMAIL => $allowedToChangeEmail,
|
||||
default => true,
|
||||
}
|
||||
);
|
||||
|
||||
$expectedResp = new DataResponse($expected);
|
||||
$this->assertEquals($expectedResp, $this->api->getEditableFields('userId'));
|
||||
|
|
|
|||
Loading…
Reference in a new issue