[Tests] Refactoring
This commit is contained in:
parent
bb41db7f14
commit
df0cc1d273
|
|
@ -99,14 +99,22 @@ class Client {
|
||||||
/// Presences of users by a given matrix ID
|
/// Presences of users by a given matrix ID
|
||||||
Map<String, Presence> presences = {};
|
Map<String, Presence> presences = {};
|
||||||
|
|
||||||
|
/// Callback will be called on account data updates.
|
||||||
|
AccountDataEventCB onAccountData;
|
||||||
|
|
||||||
|
/// Callback will be called on presences.
|
||||||
|
PresenceCB onPresence;
|
||||||
|
|
||||||
void handleUserUpdate(UserUpdate userUpdate) {
|
void handleUserUpdate(UserUpdate userUpdate) {
|
||||||
if (userUpdate.type == "account_data") {
|
if (userUpdate.type == "account_data") {
|
||||||
AccountData newAccountData = AccountData.fromJson(userUpdate.content);
|
AccountData newAccountData = AccountData.fromJson(userUpdate.content);
|
||||||
accountData[newAccountData.typeKey] = newAccountData;
|
accountData[newAccountData.typeKey] = newAccountData;
|
||||||
|
if (onAccountData != null) onAccountData(newAccountData);
|
||||||
}
|
}
|
||||||
if (userUpdate.type == "presence") {
|
if (userUpdate.type == "presence") {
|
||||||
Presence newPresence = Presence.fromJson(userUpdate.content);
|
Presence newPresence = Presence.fromJson(userUpdate.content);
|
||||||
presences[newPresence.typeKey] = newPresence;
|
presences[newPresence.sender] = newPresence;
|
||||||
|
if (onPresence != null) onPresence(newPresence);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -320,3 +328,6 @@ class Client {
|
||||||
return resp;
|
return resp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef AccountDataEventCB = void Function(AccountData accountData);
|
||||||
|
typedef PresenceCB = void Function(Presence presence);
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ class RawEvent {
|
||||||
/// The user who has sent this event if it is not a global account data event.
|
/// The user who has sent this event if it is not a global account data event.
|
||||||
final String senderId;
|
final String senderId;
|
||||||
|
|
||||||
User get sender => room.states[senderId] ?? User(senderId);
|
User get sender => room.states[senderId] ?? User(senderId: senderId);
|
||||||
|
|
||||||
/// The time this event has received at the server. May be null for events like
|
/// The time this event has received at the server. May be null for events like
|
||||||
/// account data.
|
/// account data.
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ class Room {
|
||||||
if (mHeroes.length > 0) {
|
if (mHeroes.length > 0) {
|
||||||
String displayname = "";
|
String displayname = "";
|
||||||
for (int i = 0; i < mHeroes.length; i++)
|
for (int i = 0; i < mHeroes.length; i++)
|
||||||
displayname += User(mHeroes[i]).calcDisplayname() + ", ";
|
displayname += User(senderId: mHeroes[i]).calcDisplayname() + ", ";
|
||||||
return displayname.substring(0, displayname.length - 2);
|
return displayname.substring(0, displayname.length - 2);
|
||||||
}
|
}
|
||||||
return "Empty chat";
|
return "Empty chat";
|
||||||
|
|
@ -99,8 +99,23 @@ class Room {
|
||||||
? states["m.room.canonical_alias"].content["alias"]
|
? states["m.room.canonical_alias"].content["alias"]
|
||||||
: "";
|
: "";
|
||||||
|
|
||||||
/// If this room is a direct chat, this is the matrix ID of the user
|
/// If this room is a direct chat, this is the matrix ID of the user.
|
||||||
String get directChatMatrixID => ""; // TODO: Needs account_data in client
|
/// Returns null otherwise.
|
||||||
|
String get directChatMatrixID {
|
||||||
|
String returnUserId = null;
|
||||||
|
if (client.directChats is Map<String, dynamic>) {
|
||||||
|
client.directChats.forEach((String userId, dynamic roomIds) {
|
||||||
|
if (roomIds is List<dynamic>) {
|
||||||
|
for (int i = 0; i < roomIds.length; i++)
|
||||||
|
if (roomIds[i] == this.id) {
|
||||||
|
returnUserId = userId;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return returnUserId;
|
||||||
|
}
|
||||||
|
|
||||||
/// Must be one of [all, mention]
|
/// Must be one of [all, mention]
|
||||||
String notificationSettings;
|
String notificationSettings;
|
||||||
|
|
@ -136,7 +151,7 @@ class Room {
|
||||||
if (mHeroes.length > 0) {
|
if (mHeroes.length > 0) {
|
||||||
String displayname = "";
|
String displayname = "";
|
||||||
for (int i = 0; i < mHeroes.length; i++)
|
for (int i = 0; i < mHeroes.length; i++)
|
||||||
displayname += User(mHeroes[i]).calcDisplayname() + ", ";
|
displayname += User(senderId: mHeroes[i]).calcDisplayname() + ", ";
|
||||||
return displayname.substring(0, displayname.length - 2);
|
return displayname.substring(0, displayname.length - 2);
|
||||||
}
|
}
|
||||||
return "Empty chat";
|
return "Empty chat";
|
||||||
|
|
@ -467,7 +482,7 @@ class Room {
|
||||||
return participants;
|
return participants;
|
||||||
|
|
||||||
for (num i = 0; i < res["chunk"].length; i++) {
|
for (num i = 0; i < res["chunk"].length; i++) {
|
||||||
User newUser = State.fromJson(res["chunk"][i], this) as User;
|
User newUser = State.fromJson(res["chunk"][i], this).asUser;
|
||||||
if (newUser.membership != Membership.leave) participants.add(newUser);
|
if (newUser.membership != Membership.leave) participants.add(newUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,13 +27,10 @@ import 'dart:core';
|
||||||
import 'package:famedlysdk/src/State.dart';
|
import 'package:famedlysdk/src/State.dart';
|
||||||
|
|
||||||
import 'Client.dart';
|
import 'Client.dart';
|
||||||
import 'Event.dart';
|
|
||||||
import 'Room.dart';
|
import 'Room.dart';
|
||||||
import 'User.dart';
|
import 'User.dart';
|
||||||
import 'sync/EventUpdate.dart';
|
import 'sync/EventUpdate.dart';
|
||||||
import 'sync/RoomUpdate.dart';
|
import 'sync/RoomUpdate.dart';
|
||||||
import 'utils/ChatTime.dart';
|
|
||||||
import 'utils/MxContent.dart';
|
|
||||||
|
|
||||||
/// Represents a list of rooms for this client, which will automatically update
|
/// Represents a list of rooms for this client, which will automatically update
|
||||||
/// itself and call the [onUpdate], [onInsert] and [onDelete] callbacks. To get
|
/// itself and call the [onUpdate], [onInsert] and [onDelete] callbacks. To get
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ class State extends RawEvent {
|
||||||
/// the overwriting semantics for this piece of room state.
|
/// the overwriting semantics for this piece of room state.
|
||||||
final String stateKey;
|
final String stateKey;
|
||||||
|
|
||||||
User get stateKeyUser => room.states[stateKey] ?? User(stateKey);
|
User get stateKeyUser => room.states[stateKey] ?? User(senderId: stateKey);
|
||||||
|
|
||||||
State(
|
State(
|
||||||
{this.prevContent,
|
{this.prevContent,
|
||||||
|
|
@ -95,4 +95,16 @@ class State extends RawEvent {
|
||||||
/// The unique key of this event. For events with a [stateKey], it will be the
|
/// The unique key of this event. For events with a [stateKey], it will be the
|
||||||
/// stateKey. Otherwise it will be the [type] as a string.
|
/// stateKey. Otherwise it will be the [type] as a string.
|
||||||
String get key => stateKey == null || stateKey.isEmpty ? typeKey : stateKey;
|
String get key => stateKey == null || stateKey.isEmpty ? typeKey : stateKey;
|
||||||
|
|
||||||
|
User get asUser => User(
|
||||||
|
stateKey: stateKey,
|
||||||
|
prevContent: prevContent,
|
||||||
|
content: content,
|
||||||
|
typeKey: typeKey,
|
||||||
|
eventId: eventId,
|
||||||
|
roomId: roomId,
|
||||||
|
senderId: senderId,
|
||||||
|
time: time,
|
||||||
|
unsigned: unsigned,
|
||||||
|
room: room);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@
|
||||||
import 'package:famedlysdk/src/Room.dart';
|
import 'package:famedlysdk/src/Room.dart';
|
||||||
import 'package:famedlysdk/src/State.dart';
|
import 'package:famedlysdk/src/State.dart';
|
||||||
import 'package:famedlysdk/src/responses/ErrorResponse.dart';
|
import 'package:famedlysdk/src/responses/ErrorResponse.dart';
|
||||||
|
import 'package:famedlysdk/src/utils/ChatTime.dart';
|
||||||
import 'package:famedlysdk/src/utils/MxContent.dart';
|
import 'package:famedlysdk/src/utils/MxContent.dart';
|
||||||
|
|
||||||
import 'Connection.dart';
|
import 'Connection.dart';
|
||||||
|
|
@ -32,7 +33,28 @@ enum Membership { join, invite, leave, ban }
|
||||||
|
|
||||||
/// Represents a Matrix User which may be a participant in a Matrix Room.
|
/// Represents a Matrix User which may be a participant in a Matrix Room.
|
||||||
class User extends State {
|
class User extends State {
|
||||||
User(String userId) : super(senderId: userId);
|
User(
|
||||||
|
{dynamic prevContent,
|
||||||
|
String stateKey,
|
||||||
|
dynamic content,
|
||||||
|
String typeKey,
|
||||||
|
String eventId,
|
||||||
|
String roomId,
|
||||||
|
String senderId,
|
||||||
|
ChatTime time,
|
||||||
|
dynamic unsigned,
|
||||||
|
Room room})
|
||||||
|
: super(
|
||||||
|
stateKey: stateKey,
|
||||||
|
prevContent: prevContent,
|
||||||
|
content: content,
|
||||||
|
typeKey: typeKey,
|
||||||
|
eventId: eventId,
|
||||||
|
roomId: roomId,
|
||||||
|
senderId: senderId,
|
||||||
|
time: time,
|
||||||
|
unsigned: unsigned,
|
||||||
|
room: room);
|
||||||
|
|
||||||
/// The full qualified Matrix ID in the format @username:server.abc.
|
/// The full qualified Matrix ID in the format @username:server.abc.
|
||||||
String get id => stateKey;
|
String get id => stateKey;
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,6 @@ class ChatTime {
|
||||||
return toTimeString();
|
return toTimeString();
|
||||||
} else if (sameWeek) {
|
} else if (sameWeek) {
|
||||||
switch (dateTime.weekday) {
|
switch (dateTime.weekday) {
|
||||||
// TODO: Needs localization
|
|
||||||
case 1:
|
case 1:
|
||||||
return "Montag";
|
return "Montag";
|
||||||
case 2:
|
case 2:
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,10 @@
|
||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
|
import 'package:famedlysdk/src/AccountData.dart';
|
||||||
import 'package:famedlysdk/src/Client.dart';
|
import 'package:famedlysdk/src/Client.dart';
|
||||||
import 'package:famedlysdk/src/Connection.dart';
|
import 'package:famedlysdk/src/Connection.dart';
|
||||||
|
import 'package:famedlysdk/src/Presence.dart';
|
||||||
import 'package:famedlysdk/src/User.dart';
|
import 'package:famedlysdk/src/User.dart';
|
||||||
import 'package:famedlysdk/src/requests/SetPushersRequest.dart';
|
import 'package:famedlysdk/src/requests/SetPushersRequest.dart';
|
||||||
import 'package:famedlysdk/src/responses/ErrorResponse.dart';
|
import 'package:famedlysdk/src/responses/ErrorResponse.dart';
|
||||||
|
|
@ -61,6 +63,15 @@ void main() {
|
||||||
Future<ErrorResponse> errorFuture =
|
Future<ErrorResponse> errorFuture =
|
||||||
matrix.connection.onError.stream.first;
|
matrix.connection.onError.stream.first;
|
||||||
|
|
||||||
|
int presenceCounter = 0;
|
||||||
|
int accountDataCounter = 0;
|
||||||
|
matrix.onPresence = (Presence data) {
|
||||||
|
presenceCounter++;
|
||||||
|
};
|
||||||
|
matrix.onAccountData = (AccountData data) {
|
||||||
|
accountDataCounter++;
|
||||||
|
};
|
||||||
|
|
||||||
final bool checkResp1 =
|
final bool checkResp1 =
|
||||||
await matrix.checkServer("https://fakeserver.wrongaddress");
|
await matrix.checkServer("https://fakeserver.wrongaddress");
|
||||||
final bool checkResp2 =
|
final bool checkResp2 =
|
||||||
|
|
@ -110,7 +121,8 @@ void main() {
|
||||||
|
|
||||||
expect(matrix.accountData.length, 2);
|
expect(matrix.accountData.length, 2);
|
||||||
expect(matrix.getDirectChatFromUserId("@bob:example.com"),
|
expect(matrix.getDirectChatFromUserId("@bob:example.com"),
|
||||||
"!abcdefgh:example.com");
|
"!726s6s6q:example.com");
|
||||||
|
expect(matrix.roomList.rooms[1].directChatMatrixID, "@bob:example.com");
|
||||||
expect(matrix.directChats, matrix.accountData["m.direct"].content);
|
expect(matrix.directChats, matrix.accountData["m.direct"].content);
|
||||||
expect(matrix.presences.length, 1);
|
expect(matrix.presences.length, 1);
|
||||||
expect(matrix.roomList.rooms.length, 2);
|
expect(matrix.roomList.rooms.length, 2);
|
||||||
|
|
@ -118,7 +130,11 @@ void main() {
|
||||||
"#famedlyContactDiscovery:${matrix.userID.split(":")[1]}");
|
"#famedlyContactDiscovery:${matrix.userID.split(":")[1]}");
|
||||||
final List<User> contacts = await matrix.loadFamedlyContacts();
|
final List<User> contacts = await matrix.loadFamedlyContacts();
|
||||||
expect(contacts.length, 1);
|
expect(contacts.length, 1);
|
||||||
expect(contacts[0].senderId, "@alice:example.com");
|
expect(contacts[0].senderId, "@alice:example.org");
|
||||||
|
expect(
|
||||||
|
matrix.presences["@alice:example.com"].content["presence"], "online");
|
||||||
|
expect(presenceCounter, 1);
|
||||||
|
expect(accountDataCounter, 2);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Try to get ErrorResponse', () async {
|
test('Try to get ErrorResponse', () async {
|
||||||
|
|
@ -184,36 +200,39 @@ void main() {
|
||||||
|
|
||||||
List<EventUpdate> eventUpdateList = await eventUpdateListFuture;
|
List<EventUpdate> eventUpdateList = await eventUpdateListFuture;
|
||||||
|
|
||||||
expect(eventUpdateList.length, 7);
|
expect(eventUpdateList.length, 8);
|
||||||
|
|
||||||
expect(eventUpdateList[0].eventType == "m.room.member", true);
|
expect(eventUpdateList[0].eventType, "m.room.member");
|
||||||
expect(eventUpdateList[0].roomID == "!726s6s6q:example.com", true);
|
expect(eventUpdateList[0].roomID, "!726s6s6q:example.com");
|
||||||
expect(eventUpdateList[0].type == "state", true);
|
expect(eventUpdateList[0].type, "state");
|
||||||
|
|
||||||
expect(eventUpdateList[1].eventType == "m.room.member", true);
|
expect(eventUpdateList[1].eventType, "m.room.canonical_alias");
|
||||||
expect(eventUpdateList[1].roomID == "!726s6s6q:example.com", true);
|
expect(eventUpdateList[1].roomID, "!726s6s6q:example.com");
|
||||||
expect(eventUpdateList[1].type == "timeline", true);
|
expect(eventUpdateList[1].type, "state");
|
||||||
|
|
||||||
expect(eventUpdateList[2].eventType == "m.room.message", true);
|
expect(eventUpdateList[2].eventType, "m.room.member");
|
||||||
expect(eventUpdateList[2].roomID == "!726s6s6q:example.com", true);
|
expect(eventUpdateList[2].roomID, "!726s6s6q:example.com");
|
||||||
expect(eventUpdateList[2].type == "timeline", true);
|
expect(eventUpdateList[2].type, "timeline");
|
||||||
|
|
||||||
expect(eventUpdateList[3].eventType == "m.tag", true);
|
expect(eventUpdateList[3].eventType, "m.room.message");
|
||||||
expect(eventUpdateList[3].roomID == "!726s6s6q:example.com", true);
|
expect(eventUpdateList[3].roomID, "!726s6s6q:example.com");
|
||||||
expect(eventUpdateList[3].type == "account_data", true);
|
expect(eventUpdateList[3].type, "timeline");
|
||||||
|
|
||||||
expect(eventUpdateList[4].eventType == "org.example.custom.room.config",
|
expect(eventUpdateList[4].eventType, "m.tag");
|
||||||
true);
|
expect(eventUpdateList[4].roomID, "!726s6s6q:example.com");
|
||||||
expect(eventUpdateList[4].roomID == "!726s6s6q:example.com", true);
|
expect(eventUpdateList[4].type, "account_data");
|
||||||
expect(eventUpdateList[4].type == "account_data", true);
|
|
||||||
|
|
||||||
expect(eventUpdateList[5].eventType == "m.room.name", true);
|
expect(eventUpdateList[5].eventType, "org.example.custom.room.config");
|
||||||
expect(eventUpdateList[5].roomID == "!696r7674:example.com", true);
|
expect(eventUpdateList[5].roomID, "!726s6s6q:example.com");
|
||||||
expect(eventUpdateList[5].type == "invite_state", true);
|
expect(eventUpdateList[5].type, "account_data");
|
||||||
|
|
||||||
expect(eventUpdateList[6].eventType == "m.room.member", true);
|
expect(eventUpdateList[6].eventType, "m.room.name");
|
||||||
expect(eventUpdateList[6].roomID == "!696r7674:example.com", true);
|
expect(eventUpdateList[6].roomID, "!696r7674:example.com");
|
||||||
expect(eventUpdateList[6].type == "invite_state", true);
|
expect(eventUpdateList[6].type, "invite_state");
|
||||||
|
|
||||||
|
expect(eventUpdateList[7].eventType, "m.room.member");
|
||||||
|
expect(eventUpdateList[7].roomID, "!696r7674:example.com");
|
||||||
|
expect(eventUpdateList[7].type, "invite_state");
|
||||||
});
|
});
|
||||||
|
|
||||||
test('User Update Test', () async {
|
test('User Update Test', () async {
|
||||||
|
|
@ -244,8 +263,8 @@ void main() {
|
||||||
|
|
||||||
test('createGroup', () async {
|
test('createGroup', () async {
|
||||||
final List<User> users = [
|
final List<User> users = [
|
||||||
User("@alice:fakeServer.notExisting"),
|
User(senderId: "@alice:fakeServer.notExisting"),
|
||||||
User("@bob:fakeServer.notExisting")
|
User(senderId: "@bob:fakeServer.notExisting")
|
||||||
];
|
];
|
||||||
final String newID = await matrix.createGroup(users);
|
final String newID = await matrix.createGroup(users);
|
||||||
expect(newID, "!1234:fakeServer.notExisting");
|
expect(newID, "!1234:fakeServer.notExisting");
|
||||||
|
|
|
||||||
|
|
@ -355,7 +355,7 @@ class FakeMatrixApi extends MockClient {
|
||||||
{
|
{
|
||||||
"content": {
|
"content": {
|
||||||
"@bob:example.com": [
|
"@bob:example.com": [
|
||||||
"!abcdefgh:example.com",
|
"!726s6s6q:example.com",
|
||||||
"!hgfedcba:example.com"
|
"!hgfedcba:example.com"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -125,12 +125,8 @@ void main() {
|
||||||
expect(room.fullyRead, fullyRead);
|
expect(room.fullyRead, fullyRead);
|
||||||
expect(room.notificationSettings, notificationSettings);
|
expect(room.notificationSettings, notificationSettings);
|
||||||
expect(room.directChatMatrixID, "");
|
expect(room.directChatMatrixID, "");
|
||||||
expect(room.draft, "");
|
|
||||||
expect(room.canonicalAlias, canonicalAlias);
|
expect(room.canonicalAlias, canonicalAlias);
|
||||||
expect(room.prev_batch, "");
|
expect(room.prev_batch, "");
|
||||||
expect(room.guestAccess, guestAccess);
|
|
||||||
expect(room.historyVisibility, historyVisibility);
|
|
||||||
expect(room.joinRules, joinRules);
|
|
||||||
expect(room.lastMessage, body);
|
expect(room.lastMessage, body);
|
||||||
expect(room.timeCreated.toTimeStamp() >= now, true);
|
expect(room.timeCreated.toTimeStamp() >= now, true);
|
||||||
room.powerLevels.forEach((String key, int value) {
|
room.powerLevels.forEach((String key, int value) {
|
||||||
|
|
@ -167,7 +163,7 @@ void main() {
|
||||||
|
|
||||||
test("getEventByID", () async {
|
test("getEventByID", () async {
|
||||||
final Event event = await room.getEventById("1234");
|
final Event event = await room.getEventById("1234");
|
||||||
expect(event.id, "143273582443PhrSn:example.org");
|
expect(event.eventId, "143273582443PhrSn:example.org");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -87,10 +87,9 @@ void main() {
|
||||||
expect(insertList, [0, 0]);
|
expect(insertList, [0, 0]);
|
||||||
expect(insertList.length, timeline.events.length);
|
expect(insertList.length, timeline.events.length);
|
||||||
expect(timeline.events.length, 2);
|
expect(timeline.events.length, 2);
|
||||||
expect(timeline.events[0].id, "1");
|
expect(timeline.events[0].eventId, "1");
|
||||||
expect(timeline.events[0].sender.id, "@alice:example.com");
|
expect(timeline.events[0].sender.id, "@alice:example.com");
|
||||||
expect(timeline.events[0].time.toTimeStamp(), testTimeStamp);
|
expect(timeline.events[0].time.toTimeStamp(), testTimeStamp);
|
||||||
expect(timeline.events[0].environment, "m.room.message");
|
|
||||||
expect(timeline.events[0].getBody(), "Testcase");
|
expect(timeline.events[0].getBody(), "Testcase");
|
||||||
expect(timeline.events[0].time > timeline.events[1].time, true);
|
expect(timeline.events[0].time > timeline.events[1].time, true);
|
||||||
});
|
});
|
||||||
|
|
@ -103,7 +102,7 @@ void main() {
|
||||||
expect(updateCount, 4);
|
expect(updateCount, 4);
|
||||||
expect(insertList, [0, 0, 0]);
|
expect(insertList, [0, 0, 0]);
|
||||||
expect(insertList.length, timeline.events.length);
|
expect(insertList.length, timeline.events.length);
|
||||||
expect(timeline.events[0].id, "42");
|
expect(timeline.events[0].eventId, "42");
|
||||||
expect(timeline.events[0].status, 1);
|
expect(timeline.events[0].status, 1);
|
||||||
|
|
||||||
client.connection.onEvent.add(EventUpdate(
|
client.connection.onEvent.add(EventUpdate(
|
||||||
|
|
@ -125,7 +124,7 @@ void main() {
|
||||||
expect(updateCount, 5);
|
expect(updateCount, 5);
|
||||||
expect(insertList, [0, 0, 0]);
|
expect(insertList, [0, 0, 0]);
|
||||||
expect(insertList.length, timeline.events.length);
|
expect(insertList.length, timeline.events.length);
|
||||||
expect(timeline.events[0].id, "42");
|
expect(timeline.events[0].eventId, "42");
|
||||||
expect(timeline.events[0].status, 2);
|
expect(timeline.events[0].status, 2);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -189,9 +188,9 @@ void main() {
|
||||||
|
|
||||||
expect(updateCount, 19);
|
expect(updateCount, 19);
|
||||||
expect(timeline.events.length, 9);
|
expect(timeline.events.length, 9);
|
||||||
expect(timeline.events[6].id, "1143273582443PhrSn:example.org");
|
expect(timeline.events[6].eventId, "1143273582443PhrSn:example.org");
|
||||||
expect(timeline.events[7].id, "2143273582443PhrSn:example.org");
|
expect(timeline.events[7].eventId, "2143273582443PhrSn:example.org");
|
||||||
expect(timeline.events[8].id, "3143273582443PhrSn:example.org");
|
expect(timeline.events[8].eventId, "3143273582443PhrSn:example.org");
|
||||||
expect(room.prev_batch, "t47409-4357353_219380_26003_2265");
|
expect(room.prev_batch, "t47409-4357353_219380_26003_2265");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@
|
||||||
* along with famedlysdk. If not, see <http://www.gnu.org/licenses/>.
|
* along with famedlysdk. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import 'package:famedlysdk/src/State.dart';
|
||||||
import 'package:famedlysdk/src/User.dart';
|
import 'package:famedlysdk/src/User.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
|
||||||
|
|
@ -42,20 +43,19 @@ void main() {
|
||||||
"power_level": powerLevel,
|
"power_level": powerLevel,
|
||||||
};
|
};
|
||||||
|
|
||||||
User user = User.fromJson(jsonObj, null);
|
User user = State.fromJson(jsonObj, null).asUser;
|
||||||
|
|
||||||
expect(user.id, id);
|
expect(user.id, id);
|
||||||
expect(user.membership, membership);
|
expect(user.membership, membership);
|
||||||
expect(user.displayName, displayName);
|
expect(user.displayName, displayName);
|
||||||
expect(user.avatarUrl.mxc, avatarUrl);
|
expect(user.avatarUrl.mxc, avatarUrl);
|
||||||
expect(user.powerLevel, powerLevel);
|
|
||||||
expect(user.calcDisplayname(), displayName);
|
expect(user.calcDisplayname(), displayName);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("calcDisplayname", () async {
|
test("calcDisplayname", () async {
|
||||||
final User user1 = User("@alice:example.com");
|
final User user1 = User(senderId: "@alice:example.com");
|
||||||
final User user2 = User("@alice:example.com", displayName: "SuperAlice");
|
final User user2 = User(senderId: "@alice:example.com");
|
||||||
final User user3 = User("@alice:example.com", displayName: "");
|
final User user3 = User(senderId: "@alice:example.com");
|
||||||
expect(user1.calcDisplayname(), "alice");
|
expect(user1.calcDisplayname(), "alice");
|
||||||
expect(user2.calcDisplayname(), "SuperAlice");
|
expect(user2.calcDisplayname(), "SuperAlice");
|
||||||
expect(user3.calcDisplayname(), "alice");
|
expect(user3.calcDisplayname(), "alice");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue