[Tests] Fix user tests
This commit is contained in:
parent
1617a8b7d5
commit
b4ae8b47f8
|
@ -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: senderId);
|
User get sender => room.states[senderId] ?? User(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.
|
||||||
|
|
|
@ -76,7 +76,7 @@ class Room {
|
||||||
for (int i = 0; i < mHeroes.length; i++) {
|
for (int i = 0; i < mHeroes.length; i++) {
|
||||||
User hero = states[mHeroes[i]] != null
|
User hero = states[mHeroes[i]] != null
|
||||||
? states[mHeroes[i]].asUser
|
? states[mHeroes[i]].asUser
|
||||||
: User(stateKey: mHeroes[i]);
|
: User(mHeroes[i]);
|
||||||
displayname += hero.calcDisplayname() + ", ";
|
displayname += hero.calcDisplayname() + ", ";
|
||||||
}
|
}
|
||||||
return displayname.substring(0, displayname.length - 2);
|
return displayname.substring(0, displayname.length - 2);
|
||||||
|
@ -155,7 +155,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(senderId: mHeroes[i]).calcDisplayname() + ", ";
|
displayname += User(mHeroes[i]).calcDisplayname() + ", ";
|
||||||
return displayname.substring(0, displayname.length - 2);
|
return displayname.substring(0, displayname.length - 2);
|
||||||
}
|
}
|
||||||
return "Empty chat";
|
return "Empty chat";
|
||||||
|
|
|
@ -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(senderId: stateKey);
|
User get stateKeyUser => room.states[stateKey] ?? User(stateKey);
|
||||||
|
|
||||||
State(
|
State(
|
||||||
{this.prevContent,
|
{this.prevContent,
|
||||||
|
@ -96,7 +96,7 @@ class State extends RawEvent {
|
||||||
/// 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(
|
User get asUser => User.fromState(
|
||||||
stateKey: stateKey,
|
stateKey: stateKey,
|
||||||
prevContent: prevContent,
|
prevContent: prevContent,
|
||||||
content: content,
|
content: content,
|
||||||
|
|
|
@ -33,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(
|
factory User(
|
||||||
|
String id, {
|
||||||
|
String membership,
|
||||||
|
String displayName,
|
||||||
|
String avatarUrl,
|
||||||
|
Room room,
|
||||||
|
}) {
|
||||||
|
Map<String, String> content = {};
|
||||||
|
if (membership != null) content["membership"] = membership;
|
||||||
|
if (displayName != null) content["displayname"] = displayName;
|
||||||
|
if (avatarUrl != null) content["avatar_url"] = avatarUrl;
|
||||||
|
return User.fromState(
|
||||||
|
stateKey: id,
|
||||||
|
content: content,
|
||||||
|
typeKey: "m.room.member",
|
||||||
|
roomId: room?.id,
|
||||||
|
room: room,
|
||||||
|
time: ChatTime.now(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
User.fromState(
|
||||||
{dynamic prevContent,
|
{dynamic prevContent,
|
||||||
String stateKey,
|
String stateKey,
|
||||||
dynamic content,
|
dynamic content,
|
||||||
|
|
|
@ -263,8 +263,8 @@ void main() {
|
||||||
|
|
||||||
test('createGroup', () async {
|
test('createGroup', () async {
|
||||||
final List<User> users = [
|
final List<User> users = [
|
||||||
User(senderId: "@alice:fakeServer.notExisting"),
|
User("@alice:fakeServer.notExisting"),
|
||||||
User(senderId: "@bob:fakeServer.notExisting")
|
User("@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");
|
||||||
|
|
|
@ -229,21 +229,21 @@ void main() {
|
||||||
final dynamic resp = await room.addToDirectChat("Testname");
|
final dynamic resp = await room.addToDirectChat("Testname");
|
||||||
expect(resp, {});
|
expect(resp, {});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
test("getTimeline", () async {
|
test("getTimeline", () async {
|
||||||
final Timeline timeline = await room.getTimeline();
|
final Timeline timeline = await room.getTimeline();
|
||||||
expect(timeline.events, []);
|
expect(timeline.events, []);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("loadEvents", () async {
|
test("loadEvents", () async {
|
||||||
final List<Event> events = await room.loadEvents();
|
final List<Event> events = await room.loadEvents();
|
||||||
expect(events, []);
|
expect(events, []);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("getUserByMXID", () async {
|
test("getUserByMXID", () async {
|
||||||
final User user = await room.getUserByMXID("@getme:example.com");
|
final User user = await room.getUserByMXID("@getme:example.com");
|
||||||
expect(user.stateKey, "@getme:example.com");
|
expect(user.stateKey, "@getme:example.com");
|
||||||
expect(user.calcDisplayname(), "You got me");
|
expect(user.calcDisplayname(), "You got me");
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,14 +33,20 @@ void main() {
|
||||||
final Membership membership = Membership.join;
|
final Membership membership = Membership.join;
|
||||||
final String displayName = "Alice";
|
final String displayName = "Alice";
|
||||||
final String avatarUrl = "";
|
final String avatarUrl = "";
|
||||||
final int powerLevel = 50;
|
|
||||||
|
|
||||||
final Map<String, dynamic> jsonObj = {
|
final Map<String, dynamic> jsonObj = {
|
||||||
"matrix_id": id,
|
"content": {
|
||||||
"displayname": displayName,
|
"membership": "join",
|
||||||
"avatar_url": avatarUrl,
|
"avatar_url": avatarUrl,
|
||||||
"membership": membership.toString().split('.').last,
|
"displayname": displayName
|
||||||
"power_level": powerLevel,
|
},
|
||||||
|
"type": "m.room.member",
|
||||||
|
"event_id": "143273582443PhrSn:example.org",
|
||||||
|
"room_id": "!636q39766251:example.com",
|
||||||
|
"sender": id,
|
||||||
|
"origin_server_ts": 1432735824653,
|
||||||
|
"unsigned": {"age": 1234},
|
||||||
|
"state_key": id
|
||||||
};
|
};
|
||||||
|
|
||||||
User user = State.fromJson(jsonObj, null).asUser;
|
User user = State.fromJson(jsonObj, null).asUser;
|
||||||
|
@ -53,9 +59,9 @@ void main() {
|
||||||
});
|
});
|
||||||
|
|
||||||
test("calcDisplayname", () async {
|
test("calcDisplayname", () async {
|
||||||
final User user1 = User(senderId: "@alice:example.com");
|
final User user1 = User("@alice:example.com");
|
||||||
final User user2 = User(senderId: "@alice:example.com");
|
final User user2 = User("@SuperAlice:example.com");
|
||||||
final User user3 = User(senderId: "@alice:example.com");
|
final User user3 = User("@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 a new issue