summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--settings/Controller/UsersController.php2
-rw-r--r--tests/Settings/Controller/UsersControllerTest.php33
2 files changed, 28 insertions, 7 deletions
diff --git a/settings/Controller/UsersController.php b/settings/Controller/UsersController.php
index 20440e6d395..28b8d2648d9 100644
--- a/settings/Controller/UsersController.php
+++ b/settings/Controller/UsersController.php
@@ -605,6 +605,7 @@ class UsersController extends Controller {
// keep the user back-end up-to-date with the latest display name and email
// address
$oldDisplayName = $user->getDisplayName();
+ $oldDisplayName = is_null($oldDisplayName) ? '' : $oldDisplayName;
if (isset($data[AccountManager::PROPERTY_DISPLAYNAME]['value'])
&& $oldDisplayName !== $data[AccountManager::PROPERTY_DISPLAYNAME]['value']
) {
@@ -615,6 +616,7 @@ class UsersController extends Controller {
}
$oldEmailAddress = $user->getEMailAddress();
+ $oldEmailAddress = is_null($oldEmailAddress) ? '' : $oldEmailAddress;
if (isset($data[AccountManager::PROPERTY_EMAIL]['value'])
&& $oldEmailAddress !== $data[AccountManager::PROPERTY_EMAIL]['value']
) {
diff --git a/tests/Settings/Controller/UsersControllerTest.php b/tests/Settings/Controller/UsersControllerTest.php
index 69082a7929c..b85667740f7 100644
--- a/tests/Settings/Controller/UsersControllerTest.php
+++ b/tests/Settings/Controller/UsersControllerTest.php
@@ -2107,20 +2107,22 @@ class UsersControllerTest extends \Test\TestCase {
$user->method('getEMailAddress')->willReturn($oldEmailAddress);
$user->method('canChangeDisplayName')->willReturn(true);
- if ($data[AccountManager::PROPERTY_EMAIL]['value'] !== $oldEmailAddress) {
+ if ($data[AccountManager::PROPERTY_EMAIL]['value'] === $oldEmailAddress ||
+ $oldEmailAddress === null && $data[AccountManager::PROPERTY_EMAIL]['value'] === '') {
+ $user->expects($this->never())->method('setEMailAddress');
+ } else {
$user->expects($this->once())->method('setEMailAddress')
->with($data[AccountManager::PROPERTY_EMAIL]['value'])
->willReturn(true);
- } else {
- $user->expects($this->never())->method('setEMailAddress');
}
- if ($data[AccountManager::PROPERTY_DISPLAYNAME]['value'] !== $oldDisplayName) {
+ if ($data[AccountManager::PROPERTY_DISPLAYNAME]['value'] === $oldDisplayName ||
+ $oldDisplayName === null && $data[AccountManager::PROPERTY_DISPLAYNAME]['value'] === '') {
+ $user->expects($this->never())->method('setDisplayName');
+ } else {
$user->expects($this->once())->method('setDisplayName')
->with($data[AccountManager::PROPERTY_DISPLAYNAME]['value'])
->willReturn(true);
- } else {
- $user->expects($this->never())->method('setDisplayName');
}
$this->accountManager->expects($this->once())->method('updateUser')
@@ -2162,7 +2164,23 @@ class UsersControllerTest extends \Test\TestCase {
],
'john@example.com',
'john New doe'
- ]
+ ],
+ [
+ [
+ AccountManager::PROPERTY_EMAIL => ['value' => ''],
+ AccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'],
+ ],
+ null,
+ 'john New doe'
+ ],
+ [
+ [
+ AccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'],
+ AccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'],
+ ],
+ 'john@example.com',
+ null
+ ],
];
}
@@ -2274,6 +2292,7 @@ class UsersControllerTest extends \Test\TestCase {
->with(
$this->equalTo($mailAddress)
);
+ $user->method('getEMailAddress')->willReturn('oldEmailAddress');
$this->mailer
->expects($this->any())
->method('validateMailAddress')