aboutsummaryrefslogtreecommitdiffstats
path: root/apps/user_status/tests
diff options
context:
space:
mode:
authorRichard Steinmetz <richard@steinmetz.cloud>2023-08-17 15:09:30 +0200
committerJoas Schilling <coding@schilljs.com>2023-08-22 08:36:53 +0200
commit6982597b6a6d319dacfbe3bee2edd2a39b3d6d68 (patch)
tree9a3cfc98c5ce08542e204ef37365491fa0a0404e /apps/user_status/tests
parent82835eaa4623180c41dad927b0ac1db1ed449362 (diff)
downloadnextcloud-server-6982597b6a6d319dacfbe3bee2edd2a39b3d6d68.tar.gz
nextcloud-server-6982597b6a6d319dacfbe3bee2edd2a39b3d6d68.zip
feat(dashboard): implement widget item api v2
This API enables the dashboard to render all widgets from the API data alone without having apps to provide their own bundles. This saves a lot of traffic and execution time as a lot less javascript has to be parsed on the frontend. Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
Diffstat (limited to 'apps/user_status/tests')
-rw-r--r--apps/user_status/tests/Unit/Dashboard/UserStatusWidgetTest.php171
1 files changed, 1 insertions, 170 deletions
diff --git a/apps/user_status/tests/Unit/Dashboard/UserStatusWidgetTest.php b/apps/user_status/tests/Unit/Dashboard/UserStatusWidgetTest.php
index 5481325510c..9e1c39f6858 100644
--- a/apps/user_status/tests/Unit/Dashboard/UserStatusWidgetTest.php
+++ b/apps/user_status/tests/Unit/Dashboard/UserStatusWidgetTest.php
@@ -7,6 +7,7 @@ declare(strict_types=1);
*
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Georg Ehrke <oc.list@georgehrke.com>
+ * @author Richard Steinmetz <richard@steinmetz.cloud>
*
* @license GNU AGPL version 3 or any later version
*
@@ -27,13 +28,11 @@ declare(strict_types=1);
namespace OCA\UserStatus\Tests\Dashboard;
use OCA\UserStatus\Dashboard\UserStatusWidget;
-use OCA\UserStatus\Db\UserStatus;
use OCA\UserStatus\Service\StatusService;
use OCP\AppFramework\Services\IInitialState;
use OCP\IDateTimeFormatter;
use OCP\IL10N;
use OCP\IURLGenerator;
-use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
use Test\TestCase;
@@ -101,172 +100,4 @@ class UserStatusWidgetTest extends TestCase {
public function testGetUrl(): void {
$this->assertNull($this->widget->getUrl());
}
-
- public function testLoadNoUserSession(): void {
- $this->userSession->expects($this->once())
- ->method('getUser')
- ->willReturn(null);
-
- $this->initialState->expects($this->once())
- ->method('provideInitialState')
- ->with('dashboard_data', []);
-
- $this->service->expects($this->never())
- ->method('findAllRecentStatusChanges');
-
- $this->widget->load();
- }
-
- public function testLoadWithCurrentUser(): void {
- $user = $this->createMock(IUser::class);
- $user->method('getUid')->willReturn('john.doe');
- $this->userSession->expects($this->once())
- ->method('getUser')
- ->willReturn($user);
-
- $user1 = $this->createMock(IUser::class);
- $user1->method('getDisplayName')->willReturn('User No. 1');
-
- $this->userManager
- ->method('get')
- ->willReturnMap([
- ['user_1', $user1],
- ['user_2', null],
- ['user_3', null],
- ['user_4', null],
- ['user_5', null],
- ['user_6', null],
- ['user_7', null],
- ]);
-
- $userStatuses = [
- UserStatus::fromParams([
- 'userId' => 'user_1',
- 'status' => 'online',
- 'customIcon' => '💻',
- 'customMessage' => 'Working',
- 'statusTimestamp' => 5000,
- ]),
- UserStatus::fromParams([
- 'userId' => 'user_2',
- 'status' => 'away',
- 'customIcon' => '☕️',
- 'customMessage' => 'Office Hangout',
- 'statusTimestamp' => 6000,
- ]),
- UserStatus::fromParams([
- 'userId' => 'user_3',
- 'status' => 'dnd',
- 'customIcon' => null,
- 'customMessage' => null,
- 'statusTimestamp' => 7000,
- ]),
- UserStatus::fromParams([
- 'userId' => 'john.doe',
- 'status' => 'away',
- 'customIcon' => '☕️',
- 'customMessage' => 'Office Hangout',
- 'statusTimestamp' => 90000,
- ]),
- UserStatus::fromParams([
- 'userId' => 'user_4',
- 'status' => 'dnd',
- 'customIcon' => null,
- 'customMessage' => null,
- 'statusTimestamp' => 7000,
- ]),
- UserStatus::fromParams([
- 'userId' => 'user_5',
- 'status' => 'invisible',
- 'customIcon' => '🏝',
- 'customMessage' => 'On vacation',
- 'statusTimestamp' => 7000,
- ]),
- UserStatus::fromParams([
- 'userId' => 'user_6',
- 'status' => 'offline',
- 'customIcon' => null,
- 'customMessage' => null,
- 'statusTimestamp' => 7000,
- ]),
- UserStatus::fromParams([
- 'userId' => 'user_7',
- 'status' => 'invisible',
- 'customIcon' => null,
- 'customMessage' => null,
- 'statusTimestamp' => 7000,
- ]),
- ];
-
- $this->service->expects($this->once())
- ->method('findAllRecentStatusChanges')
- ->with(8, 0)
- ->willReturn($userStatuses);
-
- $this->initialState->expects($this->once())
- ->method('provideInitialState')
- ->with('dashboard_data', $this->callback(function ($data): bool {
- $this->assertEquals([
- [
- 'userId' => 'user_1',
- 'displayName' => 'User No. 1',
- 'status' => 'online',
- 'icon' => '💻',
- 'message' => 'Working',
- 'timestamp' => 5000,
- ],
- [
- 'userId' => 'user_2',
- 'displayName' => 'user_2',
- 'status' => 'away',
- 'icon' => '☕️',
- 'message' => 'Office Hangout',
- 'timestamp' => 6000,
- ],
- [
- 'userId' => 'user_3',
- 'displayName' => 'user_3',
- 'status' => 'dnd',
- 'icon' => null,
- 'message' => null,
- 'timestamp' => 7000,
- ],
- [
- 'userId' => 'user_4',
- 'displayName' => 'user_4',
- 'status' => 'dnd',
- 'icon' => null,
- 'message' => null,
- 'timestamp' => 7000,
- ],
- [
- 'userId' => 'user_5',
- 'displayName' => 'user_5',
- 'status' => 'offline',
- 'icon' => '🏝',
- 'message' => 'On vacation',
- 'timestamp' => 7000,
- ],
- [
- 'userId' => 'user_6',
- 'displayName' => 'user_6',
- 'status' => 'offline',
- 'icon' => null,
- 'message' => null,
- 'timestamp' => 7000,
- ],
- [
- 'userId' => 'user_7',
- 'displayName' => 'user_7',
- 'status' => 'offline',
- 'icon' => null,
- 'message' => null,
- 'timestamp' => 7000,
- ],
- ], $data);
- return true;
- }));
-
- $this->widget->load();
- }
}