Merge pull request #23108 from nextcloud/bugfix/noid/reset-user-status-when-message-is-empty
Reset the user status when clearing the custom message
This commit is contained in:
commit
da2c88ef28
|
@ -138,7 +138,12 @@ class UserStatusController extends OCSController {
|
|||
string $message,
|
||||
?int $clearAt): DataResponse {
|
||||
try {
|
||||
$status = $this->service->setCustomMessage($this->userId, $statusIcon, $message, $clearAt);
|
||||
if ($message !== '') {
|
||||
$status = $this->service->setCustomMessage($this->userId, $statusIcon, $message, $clearAt);
|
||||
} else {
|
||||
$this->service->clearMessage($this->userId);
|
||||
$status = $this->service->findByUserId($this->userId);
|
||||
}
|
||||
return new DataResponse($this->formatStatus($status));
|
||||
} catch (InvalidClearAtException $ex) {
|
||||
$this->logger->debug('New user-status for "' . $this->userId . '" was rejected due to an invalid clearAt value "' . $clearAt . '"');
|
||||
|
|
|
@ -243,6 +243,7 @@ class UserStatusControllerTest extends TestCase {
|
|||
* @param Throwable|null $exception
|
||||
* @param bool $expectLogger
|
||||
* @param string|null $expectedLogMessage
|
||||
* @param bool $expectSuccessAsReset
|
||||
*
|
||||
* @dataProvider setCustomMessageDataProvider
|
||||
*/
|
||||
|
@ -253,7 +254,8 @@ class UserStatusControllerTest extends TestCase {
|
|||
bool $expectException,
|
||||
?Throwable $exception,
|
||||
bool $expectLogger,
|
||||
?string $expectedLogMessage): void {
|
||||
?string $expectedLogMessage,
|
||||
bool $expectSuccessAsReset = false): void {
|
||||
$userStatus = $this->getUserStatus();
|
||||
|
||||
if ($expectException) {
|
||||
|
@ -262,10 +264,25 @@ class UserStatusControllerTest extends TestCase {
|
|||
->with('john.doe', $statusIcon, $message, $clearAt)
|
||||
->willThrowException($exception);
|
||||
} else {
|
||||
$this->service->expects($this->once())
|
||||
->method('setCustomMessage')
|
||||
->with('john.doe', $statusIcon, $message, $clearAt)
|
||||
->willReturn($userStatus);
|
||||
if ($expectSuccessAsReset) {
|
||||
$this->service->expects($this->never())
|
||||
->method('setCustomMessage');
|
||||
$this->service->expects($this->once())
|
||||
->method('clearMessage')
|
||||
->with('john.doe');
|
||||
$this->service->expects($this->once())
|
||||
->method('findByUserId')
|
||||
->with('john.doe')
|
||||
->willReturn($userStatus);
|
||||
} else {
|
||||
$this->service->expects($this->once())
|
||||
->method('setCustomMessage')
|
||||
->with('john.doe', $statusIcon, $message, $clearAt)
|
||||
->willReturn($userStatus);
|
||||
|
||||
$this->service->expects($this->never())
|
||||
->method('clearMessage');
|
||||
}
|
||||
}
|
||||
|
||||
if ($expectLogger) {
|
||||
|
@ -297,6 +314,7 @@ class UserStatusControllerTest extends TestCase {
|
|||
public function setCustomMessageDataProvider(): array {
|
||||
return [
|
||||
['👨🏽💻', 'Busy developing the status feature', 500, true, false, null, false, null],
|
||||
['👨🏽💻', '', 500, true, false, null, false, null, true],
|
||||
['👨🏽💻', 'Busy developing the status feature', 500, false, true, new InvalidClearAtException('Original exception message'), true,
|
||||
'New user-status for "john.doe" was rejected due to an invalid clearAt value "500"'],
|
||||
['👨🏽💻', 'Busy developing the status feature', 500, false, true, new InvalidStatusIconException('Original exception message'), true,
|
||||
|
|
Loading…
Reference in New Issue