Add more unit tests for setting user settings
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
This commit is contained in:
parent
190ffd75b7
commit
c5e3d2e5c2
|
@ -287,6 +287,166 @@ class UsersControllerTest extends \Test\TestCase {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testSetUserSettingsWhenUserDisplayNameChangeNotAllowed() {
|
||||||
|
$controller = $this->getController(false, ['saveUserSettings']);
|
||||||
|
$user = $this->createMock(IUser::class);
|
||||||
|
$user->method('getUID')->willReturn('johndoe');
|
||||||
|
|
||||||
|
$this->userSession->method('getUser')->willReturn($user);
|
||||||
|
|
||||||
|
$defaultProperties = $this->getDefaultAccountManagerUserData();
|
||||||
|
|
||||||
|
$this->accountManager->expects($this->once())
|
||||||
|
->method('getUser')
|
||||||
|
->with($user)
|
||||||
|
->willReturn($defaultProperties);
|
||||||
|
|
||||||
|
$this->config->expects($this->once())
|
||||||
|
->method('getSystemValue')
|
||||||
|
->with('allow_user_to_change_display_name')
|
||||||
|
->willReturn(false);
|
||||||
|
|
||||||
|
$this->appManager->expects($this->any())
|
||||||
|
->method('isEnabledForUser')
|
||||||
|
->with('federatedfilesharing')
|
||||||
|
->willReturn(true);
|
||||||
|
|
||||||
|
$avatarScope = IAccountManager::SCOPE_PUBLISHED;
|
||||||
|
$displayName = 'Display name';
|
||||||
|
$displayNameScope = IAccountManager::SCOPE_PUBLISHED;
|
||||||
|
$phone = '47658468';
|
||||||
|
$phoneScope = IAccountManager::SCOPE_PUBLISHED;
|
||||||
|
$email = 'john@example.com';
|
||||||
|
$emailScope = IAccountManager::SCOPE_PUBLISHED;
|
||||||
|
$website = 'nextcloud.com';
|
||||||
|
$websiteScope = IAccountManager::SCOPE_PUBLISHED;
|
||||||
|
$address = 'street and city';
|
||||||
|
$addressScope = IAccountManager::SCOPE_PUBLISHED;
|
||||||
|
$twitter = '@nextclouders';
|
||||||
|
$twitterScope = IAccountManager::SCOPE_PUBLISHED;
|
||||||
|
|
||||||
|
// Display name and email are not changed.
|
||||||
|
$expectedProperties = $defaultProperties;
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_AVATAR]['scope'] = $avatarScope;
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_PHONE]['value'] = $phone;
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_PHONE]['scope'] = $phoneScope;
|
||||||
|
unset($expectedProperties[IAccountManager::PROPERTY_PHONE]['verified']);
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_WEBSITE]['value'] = $website;
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_WEBSITE]['scope'] = $websiteScope;
|
||||||
|
unset($expectedProperties[IAccountManager::PROPERTY_WEBSITE]['verified']);
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_ADDRESS]['value'] = $address;
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_ADDRESS]['scope'] = $addressScope;
|
||||||
|
unset($expectedProperties[IAccountManager::PROPERTY_ADDRESS]['verified']);
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_TWITTER]['value'] = $twitter;
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_TWITTER]['scope'] = $twitterScope;
|
||||||
|
unset($expectedProperties[IAccountManager::PROPERTY_TWITTER]['verified']);
|
||||||
|
|
||||||
|
$this->mailer->expects($this->once())->method('validateMailAddress')
|
||||||
|
->willReturn(true);
|
||||||
|
|
||||||
|
$controller->expects($this->once())
|
||||||
|
->method('saveUserSettings')
|
||||||
|
->with($user, $expectedProperties)
|
||||||
|
->willReturnArgument(1);
|
||||||
|
|
||||||
|
$result = $controller->setUserSettings(
|
||||||
|
$avatarScope,
|
||||||
|
$displayName,
|
||||||
|
$displayNameScope,
|
||||||
|
$phone,
|
||||||
|
$phoneScope,
|
||||||
|
$email,
|
||||||
|
$emailScope,
|
||||||
|
$website,
|
||||||
|
$websiteScope,
|
||||||
|
$address,
|
||||||
|
$addressScope,
|
||||||
|
$twitter,
|
||||||
|
$twitterScope
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testSetUserSettingsWhenFederatedFilesharingNotEnabled() {
|
||||||
|
$controller = $this->getController(false, ['saveUserSettings']);
|
||||||
|
$user = $this->createMock(IUser::class);
|
||||||
|
$user->method('getUID')->willReturn('johndoe');
|
||||||
|
|
||||||
|
$this->userSession->method('getUser')->willReturn($user);
|
||||||
|
|
||||||
|
$defaultProperties = $this->getDefaultAccountManagerUserData();
|
||||||
|
|
||||||
|
$this->accountManager->expects($this->once())
|
||||||
|
->method('getUser')
|
||||||
|
->with($user)
|
||||||
|
->willReturn($defaultProperties);
|
||||||
|
|
||||||
|
$this->appManager->expects($this->any())
|
||||||
|
->method('isEnabledForUser')
|
||||||
|
->with('federatedfilesharing')
|
||||||
|
->willReturn(false);
|
||||||
|
|
||||||
|
$avatarScope = IAccountManager::SCOPE_PUBLISHED;
|
||||||
|
$displayName = 'Display name';
|
||||||
|
$displayNameScope = IAccountManager::SCOPE_PUBLISHED;
|
||||||
|
$phone = '47658468';
|
||||||
|
$phoneScope = IAccountManager::SCOPE_PUBLISHED;
|
||||||
|
$email = 'john@example.com';
|
||||||
|
$emailScope = IAccountManager::SCOPE_PUBLISHED;
|
||||||
|
$website = 'nextcloud.com';
|
||||||
|
$websiteScope = IAccountManager::SCOPE_PUBLISHED;
|
||||||
|
$address = 'street and city';
|
||||||
|
$addressScope = IAccountManager::SCOPE_PUBLISHED;
|
||||||
|
$twitter = '@nextclouders';
|
||||||
|
$twitterScope = IAccountManager::SCOPE_PUBLISHED;
|
||||||
|
|
||||||
|
// All settings are changed (in the past phone, website, address and
|
||||||
|
// twitter were not changed).
|
||||||
|
$expectedProperties = $defaultProperties;
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_AVATAR]['scope'] = $avatarScope;
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_DISPLAYNAME]['value'] = $displayName;
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_DISPLAYNAME]['scope'] = $displayNameScope;
|
||||||
|
unset($expectedProperties[IAccountManager::PROPERTY_DISPLAYNAME]['verified']);
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_EMAIL]['value'] = $email;
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_EMAIL]['scope'] = $emailScope;
|
||||||
|
unset($expectedProperties[IAccountManager::PROPERTY_EMAIL]['verified']);
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_PHONE]['value'] = $phone;
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_PHONE]['scope'] = $phoneScope;
|
||||||
|
unset($expectedProperties[IAccountManager::PROPERTY_PHONE]['verified']);
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_WEBSITE]['value'] = $website;
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_WEBSITE]['scope'] = $websiteScope;
|
||||||
|
unset($expectedProperties[IAccountManager::PROPERTY_WEBSITE]['verified']);
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_ADDRESS]['value'] = $address;
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_ADDRESS]['scope'] = $addressScope;
|
||||||
|
unset($expectedProperties[IAccountManager::PROPERTY_ADDRESS]['verified']);
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_TWITTER]['value'] = $twitter;
|
||||||
|
$expectedProperties[IAccountManager::PROPERTY_TWITTER]['scope'] = $twitterScope;
|
||||||
|
unset($expectedProperties[IAccountManager::PROPERTY_TWITTER]['verified']);
|
||||||
|
|
||||||
|
$this->mailer->expects($this->once())->method('validateMailAddress')
|
||||||
|
->willReturn(true);
|
||||||
|
|
||||||
|
$controller->expects($this->once())
|
||||||
|
->method('saveUserSettings')
|
||||||
|
->with($user, $expectedProperties)
|
||||||
|
->willReturnArgument(1);
|
||||||
|
|
||||||
|
$result = $controller->setUserSettings(
|
||||||
|
$avatarScope,
|
||||||
|
$displayName,
|
||||||
|
$displayNameScope,
|
||||||
|
$phone,
|
||||||
|
$phoneScope,
|
||||||
|
$email,
|
||||||
|
$emailScope,
|
||||||
|
$website,
|
||||||
|
$websiteScope,
|
||||||
|
$address,
|
||||||
|
$addressScope,
|
||||||
|
$twitter,
|
||||||
|
$twitterScope
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider dataTestSaveUserSettings
|
* @dataProvider dataTestSaveUserSettings
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue