diff --git a/lib/private/User/User.php b/lib/private/User/User.php index e54ac397b3efe..57ee1a5958ee4 100644 --- a/lib/private/User/User.php +++ b/lib/private/User/User.php @@ -119,7 +119,7 @@ public function getDisplayName(): string { public function setDisplayName($displayName): bool { $displayName = trim($displayName); $oldDisplayName = $this->getDisplayName(); - if ($this->backend->implementsActions(Backend::SET_DISPLAYNAME) && !empty($displayName) && $displayName !== $oldDisplayName) { + if ($this->backend instanceof ISetDisplayNameBackend || $this->backend->implementsActions(Backend::SET_DISPLAYNAME) && !empty($displayName) && $displayName !== $oldDisplayName) { /** @var ISetDisplayNameBackend $backend */ $backend = $this->backend; $result = $backend->setDisplayName($this->uid, $displayName); diff --git a/tests/lib/User/UserTest.php b/tests/lib/User/UserTest.php index 76bcac21c01af..05365afd708c4 100644 --- a/tests/lib/User/UserTest.php +++ b/tests/lib/User/UserTest.php @@ -23,6 +23,7 @@ use OCP\Notification\IManager as INotificationManager; use OCP\Notification\INotification; use OCP\Server; +use OCP\User\Backend\ABackend; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\MockObject\MockObject; @@ -344,15 +345,12 @@ public function testSetDisplayNameEmpty(): void { } public function testSetDisplayNameNotSupported(): void { - $backend = $this->createMock(Database::class); + $backend = $this->createMock(ABackend::class); $backend->expects($this->any()) ->method('implementsActions') ->willReturn(false); - $backend->expects($this->never()) - ->method('setDisplayName'); - $user = new User('foo', $backend, $this->dispatcher); $this->assertFalse($user->setDisplayName('Foo')); $this->assertEquals('foo', $user->getDisplayName());