7474use  OCP \UserInterface ;
7575use  PHPUnit \Framework \MockObject \MockObject ;
7676use  Psr \Log \LoggerInterface ;
77+ use  RuntimeException ;
7778use  Test \TestCase ;
7879
7980class  UsersControllerTest extends  TestCase {
@@ -1679,6 +1680,8 @@ public function testEditUserRegularUserSelfEditChangeEmailValid() {
16791680			->method ('getBackend ' )
16801681			->willReturn ($ backend
16811682
1683+ 		$ this config ->method ('getSystemValue ' )->willReturnCallback (fn  (string  $ keymixed  $ default$ default
1684+ 
16821685		$ this assertEquals ([], $ this api ->editUser ('UserToEdit ' , 'email ' , 'demo@nextcloud.com ' )->getData ());
16831686	}
16841687
@@ -1873,6 +1876,8 @@ public function testEditUserRegularUserSelfEditChangeEmailInvalid() {
18731876			->method ('getBackend ' )
18741877			->willReturn ($ backend
18751878
1879+ 		$ this config ->method ('getSystemValue ' )->willReturnCallback (fn  (string  $ keymixed  $ default$ default
1880+ 
18761881		$ this api ->editUser ('UserToEdit ' , 'email ' , 'demo.org ' );
18771882	}
18781883
@@ -4244,7 +4249,8 @@ public function testResendWelcomeMessageFailed() {
42444249
42454250	public  function  dataGetEditableFields () {
42464251		return  [
4247- 			[false , ISetDisplayNameBackend::class, [
4252+ 			[false , true , ISetDisplayNameBackend::class, [
4253+ 				IAccountManager::PROPERTY_EMAIL ,
42484254				IAccountManager::COLLECTION_EMAIL ,
42494255				IAccountManager::PROPERTY_PHONE ,
42504256				IAccountManager::PROPERTY_ADDRESS ,
@@ -4257,8 +4263,49 @@ public function dataGetEditableFields() {
42574263				IAccountManager::PROPERTY_BIOGRAPHY ,
42584264				IAccountManager::PROPERTY_PROFILE_ENABLED ,
42594265			]],
4260- 			[true , ISetDisplayNameBackend::class, [
4266+ 			[true , false ,  ISetDisplayNameBackend::class, [
42614267				IAccountManager::PROPERTY_DISPLAYNAME ,
4268+ 				IAccountManager::COLLECTION_EMAIL ,
4269+ 				IAccountManager::PROPERTY_PHONE ,
4270+ 				IAccountManager::PROPERTY_ADDRESS ,
4271+ 				IAccountManager::PROPERTY_WEBSITE ,
4272+ 				IAccountManager::PROPERTY_TWITTER ,
4273+ 				IAccountManager::PROPERTY_FEDIVERSE ,
4274+ 				IAccountManager::PROPERTY_ORGANISATION ,
4275+ 				IAccountManager::PROPERTY_ROLE ,
4276+ 				IAccountManager::PROPERTY_HEADLINE ,
4277+ 				IAccountManager::PROPERTY_BIOGRAPHY ,
4278+ 				IAccountManager::PROPERTY_PROFILE_ENABLED ,
4279+ 			]],
4280+ 			[true , true , ISetDisplayNameBackend::class, [
4281+ 				IAccountManager::PROPERTY_DISPLAYNAME ,
4282+ 				IAccountManager::PROPERTY_EMAIL ,
4283+ 				IAccountManager::COLLECTION_EMAIL ,
4284+ 				IAccountManager::PROPERTY_PHONE ,
4285+ 				IAccountManager::PROPERTY_ADDRESS ,
4286+ 				IAccountManager::PROPERTY_WEBSITE ,
4287+ 				IAccountManager::PROPERTY_TWITTER ,
4288+ 				IAccountManager::PROPERTY_FEDIVERSE ,
4289+ 				IAccountManager::PROPERTY_ORGANISATION ,
4290+ 				IAccountManager::PROPERTY_ROLE ,
4291+ 				IAccountManager::PROPERTY_HEADLINE ,
4292+ 				IAccountManager::PROPERTY_BIOGRAPHY ,
4293+ 				IAccountManager::PROPERTY_PROFILE_ENABLED ,
4294+ 			]],
4295+ 			[false , false , ISetDisplayNameBackend::class, [
4296+ 				IAccountManager::COLLECTION_EMAIL ,
4297+ 				IAccountManager::PROPERTY_PHONE ,
4298+ 				IAccountManager::PROPERTY_ADDRESS ,
4299+ 				IAccountManager::PROPERTY_WEBSITE ,
4300+ 				IAccountManager::PROPERTY_TWITTER ,
4301+ 				IAccountManager::PROPERTY_FEDIVERSE ,
4302+ 				IAccountManager::PROPERTY_ORGANISATION ,
4303+ 				IAccountManager::PROPERTY_ROLE ,
4304+ 				IAccountManager::PROPERTY_HEADLINE ,
4305+ 				IAccountManager::PROPERTY_BIOGRAPHY ,
4306+ 				IAccountManager::PROPERTY_PROFILE_ENABLED ,
4307+ 			]],
4308+ 			[false , true , UserInterface::class, [
42624309				IAccountManager::PROPERTY_EMAIL ,
42634310				IAccountManager::COLLECTION_EMAIL ,
42644311				IAccountManager::PROPERTY_PHONE ,
@@ -4272,7 +4319,20 @@ public function dataGetEditableFields() {
42724319				IAccountManager::PROPERTY_BIOGRAPHY ,
42734320				IAccountManager::PROPERTY_PROFILE_ENABLED ,
42744321			]],
4275- 			[true , UserInterface::class, [
4322+ 			[true , false , UserInterface::class, [
4323+ 				IAccountManager::COLLECTION_EMAIL ,
4324+ 				IAccountManager::PROPERTY_PHONE ,
4325+ 				IAccountManager::PROPERTY_ADDRESS ,
4326+ 				IAccountManager::PROPERTY_WEBSITE ,
4327+ 				IAccountManager::PROPERTY_TWITTER ,
4328+ 				IAccountManager::PROPERTY_FEDIVERSE ,
4329+ 				IAccountManager::PROPERTY_ORGANISATION ,
4330+ 				IAccountManager::PROPERTY_ROLE ,
4331+ 				IAccountManager::PROPERTY_HEADLINE ,
4332+ 				IAccountManager::PROPERTY_BIOGRAPHY ,
4333+ 				IAccountManager::PROPERTY_PROFILE_ENABLED ,
4334+ 			]],
4335+ 			[true , true , UserInterface::class, [
42764336				IAccountManager::PROPERTY_EMAIL ,
42774337				IAccountManager::COLLECTION_EMAIL ,
42784338				IAccountManager::PROPERTY_PHONE ,
@@ -4286,6 +4346,19 @@ public function dataGetEditableFields() {
42864346				IAccountManager::PROPERTY_BIOGRAPHY ,
42874347				IAccountManager::PROPERTY_PROFILE_ENABLED ,
42884348			]],
4349+ 			[false , false , UserInterface::class, [
4350+ 				IAccountManager::COLLECTION_EMAIL ,
4351+ 				IAccountManager::PROPERTY_PHONE ,
4352+ 				IAccountManager::PROPERTY_ADDRESS ,
4353+ 				IAccountManager::PROPERTY_WEBSITE ,
4354+ 				IAccountManager::PROPERTY_TWITTER ,
4355+ 				IAccountManager::PROPERTY_FEDIVERSE ,
4356+ 				IAccountManager::PROPERTY_ORGANISATION ,
4357+ 				IAccountManager::PROPERTY_ROLE ,
4358+ 				IAccountManager::PROPERTY_HEADLINE ,
4359+ 				IAccountManager::PROPERTY_BIOGRAPHY ,
4360+ 				IAccountManager::PROPERTY_PROFILE_ENABLED ,
4361+ 			]],
42894362		];
42904363	}
42914364
@@ -4296,13 +4369,12 @@ public function dataGetEditableFields() {
42964369	 * @param string $userBackend 
42974370	 * @param array $expected 
42984371	 */ 
4299- 	public  function  testGetEditableFields (bool  $ allowedToChangeDisplayNamestring  $ userBackendarray  $ expected
4300- 		$ this config 
4301- 			->method ('getSystemValue ' )
4302- 			->with (
4303- 				$ this equalTo ('allow_user_to_change_display_name ' ),
4304- 				$ this anything ()
4305- 			)->willReturn ($ allowedToChangeDisplayName
4372+ 	public  function  testGetEditableFields (bool  $ allowedToChangeDisplayNamebool  $ allowedToChangeEmailstring  $ userBackendarray  $ expectedvoid  {
4373+ 		$ this config ->method ('getSystemValue ' )->willReturnCallback (fn  (string  $ keymixed  $ defaultmatch  ($ key
4374+ 			'allow_user_to_change_display_name '  => $ allowedToChangeDisplayName
4375+ 			'allow_user_to_change_email '  => $ allowedToChangeEmail
4376+ 			default  => throw  new  RuntimeException ('Unexpected system config key:  '  . $ key
4377+ 		});
43064378
43074379		$ user$ this createMock (IUser::class);
43084380		$ this userSession ->method ('getUser ' )
0 commit comments