refactor: Migrate to Matrix Api Lite 1.0.0

This commit is contained in:
Krille Fear 2022-05-17 22:50:04 +00:00 committed by Nicolas Werner
parent d77940b9c2
commit 3f3d4d38d6
18 changed files with 287 additions and 291 deletions

View File

@ -631,7 +631,7 @@ class KeyManager {
Future<void> loadSingleKey(String roomId, String sessionId) async {
final info = await getRoomKeysBackupInfo();
final ret =
await client.getRoomKeysBySessionId(roomId, sessionId, info.version);
await client.getRoomKeyBySessionId(roomId, sessionId, info.version);
final keys = RoomKeys.fromJson({
'rooms': {
roomId: {

View File

@ -846,7 +846,7 @@ class Client extends MatrixApi {
return pushrules != null ? PushRuleSet.fromJson(pushrules) : null;
}
static const Set<String> supportedVersions = {'r0.5.0', 'r0.6.0'};
static const Set<String> supportedVersions = {'v1.1', 'v1.2'};
static const List<String> supportedDirectEncryptionAlgorithms = [
AlgorithmTypes.olmV1Curve25519AesSha2
];

View File

@ -1102,7 +1102,7 @@ class Room {
this.prev_batch = resp.end;
final loadFn = () async {
if (!((resp.chunk?.isNotEmpty ?? false) && resp.end != null)) return;
if (!((resp.chunk.isNotEmpty) && resp.end != null)) return;
await client.handleSync(
SyncUpdate(
@ -1116,7 +1116,7 @@ class Room {
limited: false,
events: direction == Direction.b
? resp.chunk
: resp.chunk?.reversed.toList(),
: resp.chunk.reversed.toList(),
prevBatch: direction == Direction.b
? resp.end
: resp.start,
@ -1151,7 +1151,7 @@ class Room {
await loadFn();
}
return resp.chunk?.length ?? 0;
return resp.chunk.length;
}
/// Sets this room as a direct chat for this user if not already.

View File

@ -184,8 +184,8 @@ class Timeline {
filter: jsonEncode(StateFilter(lazyLoadMembers: true).toJson()),
);
if (resp.end == null || resp.start == null) {
Logs().w('end or start parameters where not set in the response');
if (resp.end == null) {
Logs().w('end parameter was not set in the response');
}
final newNextBatch = direction == Direction.b ? resp.start : resp.end;
@ -206,7 +206,7 @@ class Timeline {
}
final newEvents =
resp.chunk?.map((e) => Event.fromMatrixEvent(e, room)).toList() ?? [];
resp.chunk.map((e) => Event.fromMatrixEvent(e, room)).toList();
if (!allowNewEvent) {
if (resp.start == resp.end) allowNewEvent = true;
@ -255,7 +255,7 @@ class Timeline {
if (onUpdate != null) {
onUpdate!();
}
return resp.chunk?.length ?? 0;
return resp.chunk.length;
}
Timeline(

View File

@ -25,7 +25,7 @@ extension MxcUriExtension on Uri {
Uri getDownloadLink(Client matrix) => isScheme('mxc')
? matrix.homeserver != null
? matrix.homeserver?.resolve(
'_matrix/media/r0/download/$host${hasPort ? ':$port' : ''}$path') ??
'_matrix/media/v3/download/$host${hasPort ? ':$port' : ''}$path') ??
Uri()
: Uri()
: this;
@ -48,7 +48,7 @@ extension MxcUriExtension on Uri {
return Uri(
scheme: homeserver.scheme,
host: homeserver.host,
path: '/_matrix/media/r0/thumbnail/$host${hasPort ? ':$port' : ''}$path',
path: '/_matrix/media/v3/thumbnail/$host${hasPort ? ':$port' : ''}$path',
port: homeserver.port,
queryParameters: {
if (width != null) 'width': width.round().toString(),

View File

@ -18,7 +18,7 @@ dependencies:
crypto: ^3.0.0
base58check: ^2.0.0
olm: ^2.0.0
matrix_api_lite: ^0.5.1
matrix_api_lite: ^1.0.0
hive: ^2.0.4
image: ^3.1.1
ffi: ^1.0.0

View File

@ -579,7 +579,7 @@ void main() {
});
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
true);
});
test('sendToDeviceEncryptedChunked', () async {
@ -599,7 +599,7 @@ void main() {
expect(
FakeMatrixApi.calledEndpoints.keys
.where((k) =>
k.startsWith('/client/r0/sendToDevice/m.room.encrypted'))
k.startsWith('/client/v3/sendToDevice/m.room.encrypted'))
.length,
1);
@ -641,14 +641,14 @@ void main() {
expect(
FakeMatrixApi.calledEndpoints.keys
.where((k) =>
k.startsWith('/client/r0/sendToDevice/m.room.encrypted'))
k.startsWith('/client/v3/sendToDevice/m.room.encrypted'))
.length,
1);
await Future.delayed(Duration(milliseconds: 100));
expect(
FakeMatrixApi.calledEndpoints.keys
.where((k) =>
k.startsWith('/client/r0/sendToDevice/m.room.encrypted'))
k.startsWith('/client/v3/sendToDevice/m.room.encrypted'))
.length,
2);
});
@ -688,26 +688,26 @@ void main() {
await client.sendToDevice('raccoon', 'raccoon_txnid', raccoonContent);
expect(
json.decode(FakeMatrixApi
.calledEndpoints['/client/r0/sendToDevice/foxies/floof_txnid']
.calledEndpoints['/client/v3/sendToDevice/foxies/floof_txnid']
?[0])['messages'],
foxContent);
expect(
json.decode(FakeMatrixApi.calledEndpoints[
'/client/r0/sendToDevice/raccoon/raccoon_txnid']?[0])['messages'],
'/client/v3/sendToDevice/raccoon/raccoon_txnid']?[0])['messages'],
raccoonContent);
FakeMatrixApi.calledEndpoints.clear();
await client.sendToDevice('bunny', 'bunny_txnid', bunnyContent);
expect(
FakeMatrixApi
.calledEndpoints['/client/r0/sendToDevice/foxies/floof_txnid'],
.calledEndpoints['/client/v3/sendToDevice/foxies/floof_txnid'],
null);
expect(
FakeMatrixApi
.calledEndpoints['/client/r0/sendToDevice/raccoon/raccoon_txnid'],
.calledEndpoints['/client/v3/sendToDevice/raccoon/raccoon_txnid'],
null);
expect(
json.decode(FakeMatrixApi
.calledEndpoints['/client/r0/sendToDevice/bunny/bunny_txnid']
.calledEndpoints['/client/v3/sendToDevice/bunny/bunny_txnid']
?[0])['messages'],
bunnyContent);
await client.dispose(closeDatabase: true);
@ -751,16 +751,16 @@ void main() {
await client.sendToDevice('bunny', 'bunny_txnid', bunnyContent);
expect(
json.decode(FakeMatrixApi
.calledEndpoints['/client/r0/sendToDevice/foxies/floof_txnid']
.calledEndpoints['/client/v3/sendToDevice/foxies/floof_txnid']
?[0])['messages'],
foxContent);
expect(
json.decode(FakeMatrixApi.calledEndpoints[
'/client/r0/sendToDevice/raccoon/raccoon_txnid']?[0])['messages'],
'/client/v3/sendToDevice/raccoon/raccoon_txnid']?[0])['messages'],
raccoonContent);
expect(
json.decode(FakeMatrixApi
.calledEndpoints['/client/r0/sendToDevice/bunny/bunny_txnid']
.calledEndpoints['/client/v3/sendToDevice/bunny/bunny_txnid']
?[0])['messages'],
bunnyContent);
await client.dispose(closeDatabase: true);

View File

@ -35,7 +35,7 @@ void main() {
final state = stateKey != null;
return json.decode(FakeMatrixApi.calledEndpoints.entries
.firstWhere((e) => e.key.startsWith(
'/client/r0/rooms/${Uri.encodeComponent(room.id)}/${state ? 'state' : 'send'}/${Uri.encodeComponent(type)}${state && stateKey?.isNotEmpty == true ? '/' + Uri.encodeComponent(stateKey!) : ''}'))
'/client/v3/rooms/${Uri.encodeComponent(room.id)}/${state ? 'state' : 'send'}/${Uri.encodeComponent(type)}${state && stateKey?.isNotEmpty == true ? '/' + Uri.encodeComponent(stateKey!) : ''}'))
.value
.first);
};
@ -168,7 +168,7 @@ void main() {
await room.sendTextEvent('/join !newroom:example.com');
expect(
FakeMatrixApi
.calledEndpoints['/client/r0/join/!newroom%3Aexample.com']
.calledEndpoints['/client/v3/join/!newroom%3Aexample.com']
?.first !=
null,
true);
@ -180,7 +180,7 @@ void main() {
expect(
FakeMatrixApi
.calledEndpoints[
'/client/r0/rooms/!1234%3AfakeServer.notExisting/leave']
'/client/v3/rooms/!1234%3AfakeServer.notExisting/leave']
?.first !=
null,
true);
@ -208,7 +208,7 @@ void main() {
expect(
json.decode(FakeMatrixApi
.calledEndpoints[
'/client/r0/rooms/!1234%3AfakeServer.notExisting/kick']
'/client/v3/rooms/!1234%3AfakeServer.notExisting/kick']
?.first),
{
'user_id': '@baduser:example.org',
@ -221,7 +221,7 @@ void main() {
expect(
json.decode(FakeMatrixApi
.calledEndpoints[
'/client/r0/rooms/!1234%3AfakeServer.notExisting/ban']
'/client/v3/rooms/!1234%3AfakeServer.notExisting/ban']
?.first),
{
'user_id': '@baduser:example.org',
@ -234,7 +234,7 @@ void main() {
expect(
json.decode(FakeMatrixApi
.calledEndpoints[
'/client/r0/rooms/!1234%3AfakeServer.notExisting/unban']
'/client/v3/rooms/!1234%3AfakeServer.notExisting/unban']
?.first),
{
'user_id': '@baduser:example.org',
@ -247,7 +247,7 @@ void main() {
expect(
json.decode(FakeMatrixApi
.calledEndpoints[
'/client/r0/rooms/!1234%3AfakeServer.notExisting/invite']
'/client/v3/rooms/!1234%3AfakeServer.notExisting/invite']
?.first),
{
'user_id': '@baduser:example.org',
@ -279,7 +279,7 @@ void main() {
await room.sendTextEvent('/dm @alice:example.com --no-encryption');
expect(
json.decode(
FakeMatrixApi.calledEndpoints['/client/r0/createRoom']?.first),
FakeMatrixApi.calledEndpoints['/client/v3/createRoom']?.first),
{
'invite': ['@alice:example.com'],
'is_direct': true,
@ -292,7 +292,7 @@ void main() {
await room.sendTextEvent('/create @alice:example.com --no-encryption');
expect(
json.decode(
FakeMatrixApi.calledEndpoints['/client/r0/createRoom']?.first),
FakeMatrixApi.calledEndpoints['/client/v3/createRoom']?.first),
{'preset': 'private_chat'});
});

View File

@ -192,7 +192,7 @@ void main() {
await Future.delayed(Duration(milliseconds: 10));
expect(
FakeMatrixApi.calledEndpoints.keys
.any((k) => k == '/client/r0/keys/signatures/upload'),
.any((k) => k == '/client/v3/keys/signatures/upload'),
true);
expect(key.directVerified, true);
@ -201,7 +201,7 @@ void main() {
await Future.delayed(Duration(milliseconds: 10));
expect(
FakeMatrixApi.calledEndpoints.keys
.any((k) => k == '/client/r0/keys/signatures/upload'),
.any((k) => k == '/client/v3/keys/signatures/upload'),
false);
expect(key.directVerified, false);
client.userDeviceKeys[client.userID]?.deviceKeys.remove('UNSIGNEDDEVICE');

View File

@ -61,7 +61,7 @@ void main() {
expect(key.directVerified, true);
expect(
FakeMatrixApi.calledEndpoints
.containsKey('/client/r0/keys/signatures/upload'),
.containsKey('/client/v3/keys/signatures/upload'),
true);
expect(await client.encryption!.crossSigning.isCached(), true);
});
@ -99,7 +99,7 @@ void main() {
client.userDeviceKeys['@othertest:fakeServer.notExisting']!.masterKey!
]);
final body = json.decode(FakeMatrixApi
.calledEndpoints['/client/r0/keys/signatures/upload']!.first);
.calledEndpoints['/client/v3/keys/signatures/upload']!.first);
expect(body['@test:fakeServer.notExisting']?.containsKey('OTHERDEVICE'),
true);
expect(

View File

@ -539,8 +539,8 @@ void main() {
.remove('JLAFKJWSCS');
// Alice adds her device with same device ID but different keys
final oldResp = FakeMatrixApi.api['POST']?['/client/r0/keys/query'](null);
FakeMatrixApi.api['POST']?['/client/r0/keys/query'] = (_) {
final oldResp = FakeMatrixApi.api['POST']?['/client/v3/keys/query'](null);
FakeMatrixApi.api['POST']?['/client/v3/keys/query'] = (_) {
oldResp['device_keys']['@alice:example.com']['JLAFKJWSCS'] = {
'user_id': '@alice:example.com',
'device_id': 'JLAFKJWSCS',

View File

@ -65,7 +65,7 @@ void main() {
for (final entry in FakeMatrixApi.calledEndpoints.entries) {
final payload = jsonDecode(entry.value.first);
if (entry.key
.startsWith('/client/r0/sendToDevice/m.room_key_request') &&
.startsWith('/client/v3/sendToDevice/m.room_key_request') &&
(payload['messages'] is Map) &&
(payload['messages']['@alice:example.com'] is Map) &&
(payload['messages']['@alice:example.com']['*'] is Map)) {
@ -115,7 +115,7 @@ void main() {
Logs().i(FakeMatrixApi.calledEndpoints.keys.toString());
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
true);
// test a successful foreign share
@ -142,7 +142,7 @@ void main() {
Logs().i(FakeMatrixApi.calledEndpoints.keys.toString());
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
true);
session.allowedAtIndex.remove('@test:fakeServer.notExisting');
@ -168,7 +168,7 @@ void main() {
Logs().i(FakeMatrixApi.calledEndpoints.keys.toString());
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
false);
// no body
@ -184,7 +184,7 @@ void main() {
await matrix.encryption!.keyManager.handleToDeviceEvent(event);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
false);
// request by ourself
@ -206,7 +206,7 @@ void main() {
await matrix.encryption!.keyManager.handleToDeviceEvent(event);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
false);
// device not found
@ -228,7 +228,7 @@ void main() {
await matrix.encryption!.keyManager.handleToDeviceEvent(event);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
false);
// unknown room
@ -250,7 +250,7 @@ void main() {
await matrix.encryption!.keyManager.handleToDeviceEvent(event);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
false);
// unknwon session
@ -272,7 +272,7 @@ void main() {
await matrix.encryption!.keyManager.handleToDeviceEvent(event);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
false);
FakeMatrixApi.calledEndpoints.clear();

View File

@ -66,7 +66,7 @@ void main() {
.uploadKeys(uploadDeviceKeys: true);
expect(res, true);
var sent = json.decode(
FakeMatrixApi.calledEndpoints['/client/r0/keys/upload']!.first);
FakeMatrixApi.calledEndpoints['/client/v3/keys/upload']!.first);
expect(sent['device_keys'] != null, true);
expect(sent['one_time_keys'] != null, true);
expect(sent['one_time_keys'].keys.length, 66);
@ -75,14 +75,14 @@ void main() {
FakeMatrixApi.calledEndpoints.clear();
await client.encryption!.olmManager.uploadKeys();
sent = json.decode(
FakeMatrixApi.calledEndpoints['/client/r0/keys/upload']!.first);
FakeMatrixApi.calledEndpoints['/client/v3/keys/upload']!.first);
expect(sent['device_keys'] != null, false);
expect(sent['fallback_keys'].keys.length, 1);
FakeMatrixApi.calledEndpoints.clear();
await client.encryption!.olmManager
.uploadKeys(oldKeyCount: 20, unusedFallbackKey: true);
sent = json.decode(
FakeMatrixApi.calledEndpoints['/client/r0/keys/upload']!.first);
FakeMatrixApi.calledEndpoints['/client/v3/keys/upload']!.first);
expect(sent['one_time_keys'].keys.length, 46);
expect(sent['fallback_keys'].keys.length, 0);
});
@ -94,7 +94,7 @@ void main() {
.handleDeviceOneTimeKeysCount({'signed_curve25519': 20}, null);
await Future.delayed(Duration(milliseconds: 50));
expect(
FakeMatrixApi.calledEndpoints.containsKey('/client/r0/keys/upload'),
FakeMatrixApi.calledEndpoints.containsKey('/client/v3/keys/upload'),
true);
FakeMatrixApi.calledEndpoints.clear();
@ -102,14 +102,14 @@ void main() {
.handleDeviceOneTimeKeysCount({'signed_curve25519': 70}, null);
await Future.delayed(Duration(milliseconds: 50));
expect(
FakeMatrixApi.calledEndpoints.containsKey('/client/r0/keys/upload'),
FakeMatrixApi.calledEndpoints.containsKey('/client/v3/keys/upload'),
false);
FakeMatrixApi.calledEndpoints.clear();
client.encryption!.olmManager.handleDeviceOneTimeKeysCount(null, []);
await Future.delayed(Duration(milliseconds: 50));
expect(
FakeMatrixApi.calledEndpoints.containsKey('/client/r0/keys/upload'),
FakeMatrixApi.calledEndpoints.containsKey('/client/v3/keys/upload'),
true);
// this will upload keys because we assume the key count is 0, if the server doesn't send one
@ -118,7 +118,7 @@ void main() {
.handleDeviceOneTimeKeysCount(null, ['signed_curve25519']);
await Future.delayed(Duration(milliseconds: 50));
expect(
FakeMatrixApi.calledEndpoints.containsKey('/client/r0/keys/upload'),
FakeMatrixApi.calledEndpoints.containsKey('/client/v3/keys/upload'),
true);
});
@ -179,7 +179,7 @@ void main() {
await client.encryption!.olmManager.handleToDeviceEvent(event);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
true);
// fail scenarios
@ -204,7 +204,7 @@ void main() {
await client.encryption!.olmManager.handleToDeviceEvent(event);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
false);
// device not found
@ -229,7 +229,7 @@ void main() {
await client.encryption!.olmManager.handleToDeviceEvent(event);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
false);
// don't replay if the last event is m.dummy itself
@ -252,7 +252,7 @@ void main() {
await client.encryption!.olmManager.handleToDeviceEvent(event);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
false);
});

View File

@ -101,7 +101,7 @@ void main() {
expect(dbSessions.isNotEmpty, true);
await client.encryption!.keyManager.backgroundTasks();
final payload = FakeMatrixApi
.calledEndpoints['/client/unstable/room_keys/keys?version=5']!.first;
.calledEndpoints['/client/v3/room_keys/keys?version=5']!.first;
dbSessions = await client.database!.getInboundGroupSessionsToUpload();
expect(dbSessions.isEmpty, true);

View File

@ -113,7 +113,7 @@ void main() {
// account_data for this test
final content = FakeMatrixApi
.calledEndpoints[
'/client/r0/user/%40test%3AfakeServer.notExisting/account_data/best%20animal']!
'/client/v3/user/%40test%3AfakeServer.notExisting/account_data/best%20animal']!
.first;
client.accountData['best animal'] = BasicEvent.fromJson({
'type': 'best animal',
@ -206,7 +206,7 @@ void main() {
await client.encryption!.ssss.request('some.type', [key]);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
true);
});
@ -226,7 +226,7 @@ void main() {
await client.encryption!.ssss.handleToDeviceEvent(event);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
true);
// now test some fail scenarios
@ -246,7 +246,7 @@ void main() {
await client.encryption!.ssss.handleToDeviceEvent(event);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
false);
// secret not cached
@ -264,7 +264,7 @@ void main() {
await client.encryption!.ssss.handleToDeviceEvent(event);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
false);
// is a cancelation
@ -282,7 +282,7 @@ void main() {
await client.encryption!.ssss.handleToDeviceEvent(event);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
false);
// device not verified
@ -305,7 +305,7 @@ void main() {
await client.encryption!.ssss.handleToDeviceEvent(event);
expect(
FakeMatrixApi.calledEndpoints.keys.any(
(k) => k.startsWith('/client/r0/sendToDevice/m.room.encrypted')),
(k) => k.startsWith('/client/v3/sendToDevice/m.room.encrypted')),
false);
key.setDirectVerified(true);
});

View File

@ -1253,8 +1253,8 @@ void main() {
final THUMBNAIL_BUFF = Uint8List.fromList([2]);
final downloadCallback = (Uri uri) async {
return {
'/_matrix/media/r0/download/example.org/file': FILE_BUFF,
'/_matrix/media/r0/download/example.org/thumb': THUMBNAIL_BUFF,
'/_matrix/media/v3/download/example.org/file': FILE_BUFF,
'/_matrix/media/v3/download/example.org/thumb': THUMBNAIL_BUFF,
}[uri.path]!;
};
await client.checkHomeserver(Uri.parse('https://fakeserver.notexisting'),
@ -1309,21 +1309,21 @@ void main() {
expect(event.attachmentOrThumbnailMxcUrl(getThumbnail: true).toString(),
'mxc://example.org/thumb');
expect(event.getAttachmentUrl().toString(),
'https://fakeserver.notexisting/_matrix/media/r0/download/example.org/file');
'https://fakeserver.notexisting/_matrix/media/v3/download/example.org/file');
expect(event.getAttachmentUrl(getThumbnail: true).toString(),
'https://fakeserver.notexisting/_matrix/media/r0/thumbnail/example.org/file?width=800&height=800&method=scale&animated=false');
'https://fakeserver.notexisting/_matrix/media/v3/thumbnail/example.org/file?width=800&height=800&method=scale&animated=false');
expect(event.getAttachmentUrl(useThumbnailMxcUrl: true).toString(),
'https://fakeserver.notexisting/_matrix/media/r0/download/example.org/thumb');
'https://fakeserver.notexisting/_matrix/media/v3/download/example.org/thumb');
expect(
event
.getAttachmentUrl(getThumbnail: true, useThumbnailMxcUrl: true)
.toString(),
'https://fakeserver.notexisting/_matrix/media/r0/thumbnail/example.org/thumb?width=800&height=800&method=scale&animated=false');
'https://fakeserver.notexisting/_matrix/media/v3/thumbnail/example.org/thumb?width=800&height=800&method=scale&animated=false');
expect(
event
.getAttachmentUrl(getThumbnail: true, minNoThumbSize: 9000000)
.toString(),
'https://fakeserver.notexisting/_matrix/media/r0/download/example.org/file');
'https://fakeserver.notexisting/_matrix/media/v3/download/example.org/file');
buffer = await event.downloadAndDecryptAttachment(
downloadCallback: downloadCallback);
@ -1344,8 +1344,8 @@ void main() {
Uint8List.fromList([0x74, 0x68, 0x75, 0x6D, 0x62, 0x0A]);
final downloadCallback = (Uri uri) async {
return {
'/_matrix/media/r0/download/example.com/file': FILE_BUFF_ENC,
'/_matrix/media/r0/download/example.com/thumb': THUMB_BUFF_ENC,
'/_matrix/media/v3/download/example.com/file': FILE_BUFF_ENC,
'/_matrix/media/v3/download/example.com/thumb': THUMB_BUFF_ENC,
}[uri.path]!;
};
final room = Room(id: '!localpart:server.abc', client: await getClient());
@ -1441,7 +1441,7 @@ void main() {
final downloadCallback = (Uri uri) async {
serverHits++;
return {
'/_matrix/media/r0/download/example.org/newfile': FILE_BUFF,
'/_matrix/media/v3/download/example.org/newfile': FILE_BUFF,
}[uri.path]!;
};
await client.checkHomeserver(Uri.parse('https://fakeserver.notexisting'),

View File

@ -96,25 +96,25 @@ class FakeMatrixApi extends MockClient {
}
}
} else if (method == 'PUT' &&
action.contains('/client/r0/sendToDevice/')) {
action.contains('/client/v3/sendToDevice/')) {
res = {};
if (failToDevice) {
statusCode = 500;
}
} else if (method == 'GET' &&
action.contains('/client/r0/rooms/') &&
action.contains('/client/v3/rooms/') &&
action.contains('/state/m.room.member/') &&
!action.endsWith('%40alicyy%3Aexample.com')) {
res = {'displayname': ''};
} else if (method == 'PUT' &&
action.contains(
'/client/r0/rooms/!1234%3AfakeServer.notExisting/send/')) {
'/client/v3/rooms/!1234%3AfakeServer.notExisting/send/')) {
res = {'event_id': '\$event${FakeMatrixApi.eventCounter++}'};
} else if (method == 'PUT' &&
action.contains(
'/client/r0/rooms/!1234%3AfakeServer.notExisting/state/')) {
'/client/v3/rooms/!1234%3AfakeServer.notExisting/state/')) {
res = {'event_id': '\$event${FakeMatrixApi.eventCounter++}'};
} else if (action.contains('/client/r0/sync')) {
} else if (action.contains('/client/v3/sync')) {
res = {
'next_batch': DateTime.now().millisecondsSinceEpoch.toString(),
};
@ -862,7 +862,7 @@ class FakeMatrixApi extends MockClient {
'errcode': 'M_FORBIDDEN',
'error': 'Blabla',
},
'/media/r0/preview_url?url=https%3A%2F%2Fmatrix.org&ts=10': (var req) => {
'/media/v3/preview_url?url=https%3A%2F%2Fmatrix.org&ts=10': (var req) => {
'og:title': 'Matrix Blog Post',
'og:description': 'This is a really cool blog post from matrix.org',
'og:image': 'mxc://example.com/ascERGshawAWawugaAcauga',
@ -871,7 +871,7 @@ class FakeMatrixApi extends MockClient {
'og:image:width': 48,
'matrix:image:size': 102400
},
'/media/r0/config': (var req) => {'m.upload.size': 50000000},
'/media/v3/config': (var req) => {'m.upload.size': 50000000},
'/.well-known/matrix/client': (var req) => {
'm.homeserver': {'base_url': 'https://matrix.example.com'},
'm.identity_server': {'base_url': 'https://identity.example.com'},
@ -879,7 +879,7 @@ class FakeMatrixApi extends MockClient {
'app_url': 'https://custom.app.example.org'
}
},
'/client/r0/user/%40alice%3Aexample.com/rooms/!localpart%3Aexample.com/tags':
'/client/v3/user/%40alice%3Aexample.com/rooms/!localpart%3Aexample.com/tags':
(var req) => {
'tags': {
'm.favourite': {'order': 0.1},
@ -887,7 +887,7 @@ class FakeMatrixApi extends MockClient {
'u.Customers': {}
}
},
'/client/r0/events?from=1234&timeout=10&roomId=%211234': (var req) => {
'/client/v3/events?from=1234&timeout=10&roomId=%211234': (var req) => {
'start': 's3456_9_0',
'end': 's3457_9_0',
'chunk': [
@ -907,35 +907,35 @@ class FakeMatrixApi extends MockClient {
}
]
},
'/client/r0/thirdparty/location?alias=1234': (var req) => [
'/client/v3/thirdparty/location?alias=1234': (var req) => [
{
'alias': '#freenode_#matrix:matrix.org',
'protocol': 'irc',
'fields': {'network': 'freenode', 'channel': '#matrix'}
}
],
'/client/r0/thirdparty/location/irc': (var req) => [
'/client/v3/thirdparty/location/irc': (var req) => [
{
'alias': '#freenode_#matrix:matrix.org',
'protocol': 'irc',
'fields': {'network': 'freenode', 'channel': '#matrix'}
}
],
'/client/r0/thirdparty/user/irc': (var req) => [
'/client/v3/thirdparty/user/irc': (var req) => [
{
'userid': '@_gitter_jim:matrix.org',
'protocol': 'gitter',
'fields': {'user': 'jim'}
}
],
'/client/r0/thirdparty/user?userid=1234': (var req) => [
'/client/v3/thirdparty/user?userid=1234': (var req) => [
{
'userid': '@_gitter_jim:matrix.org',
'protocol': 'gitter',
'fields': {'user': 'jim'}
}
],
'/client/r0/thirdparty/protocol/irc': (var req) => {
'/client/v3/thirdparty/protocol/irc': (var req) => {
'user_fields': ['network', 'nickname'],
'location_fields': ['network', 'channel'],
'icon': 'mxc://example.org/aBcDeFgH',
@ -956,7 +956,7 @@ class FakeMatrixApi extends MockClient {
}
]
},
'/client/r0/thirdparty/protocols': (var req) => {
'/client/v3/thirdparty/protocols': (var req) => {
'irc': {
'user_fields': ['network', 'nickname'],
'location_fields': ['network', 'channel'],
@ -999,9 +999,9 @@ class FakeMatrixApi extends MockClient {
]
}
},
'/client/r0/account/whoami': (var req) =>
'/client/v3/account/whoami': (var req) =>
{'user_id': 'alice@example.com'},
'/client/r0/capabilities': (var req) => {
'/client/v3/capabilities': (var req) => {
'capabilities': {
'm.change_password': {'enabled': false},
'm.room_versions': {
@ -1016,7 +1016,7 @@ class FakeMatrixApi extends MockClient {
'com.example.custom.ratelimit': {'max_requests_per_hour': 600}
}
},
'/client/r0/rooms/1234/context/1234?filter=%7B%7D&limit=10': (var req) =>
'/client/v3/rooms/1234/context/1234?filter=%7B%7D&limit=10': (var req) =>
{
'end': 't29-57_2_0_2',
'events_after': [
@ -1107,7 +1107,7 @@ class FakeMatrixApi extends MockClient {
}
]
},
'/client/r0/admin/whois/%40alice%3Aexample.com': (var req) => {
'/client/v3/admin/whois/%40alice%3Aexample.com': (var req) => {
'user_id': '@peter:rabbit.rocks',
'devices': {
'teapot': {
@ -1131,15 +1131,15 @@ class FakeMatrixApi extends MockClient {
}
}
},
'/client/r0/user/%40alice%3Aexample.com/account_data/test.account.data':
'/client/v3/user/%40alice%3Aexample.com/account_data/test.account.data':
(var req) => {'foo': 'bar'},
'/client/r0/user/%40alice%3Aexample.com/rooms/1234/account_data/test.account.data':
'/client/v3/user/%40alice%3Aexample.com/rooms/1234/account_data/test.account.data':
(var req) => {'foo': 'bar'},
'/client/r0/directory/room/%23testalias%3Aexample.com': (var reqI) => {
'/client/v3/directory/room/%23testalias%3Aexample.com': (var reqI) => {
'room_id': '!abnjk1jdasj98:capuchins.com',
'servers': ['capuchins.com', 'matrix.org', 'another.com']
},
'/client/r0/account/3pid': (var req) => {
'/client/v3/account/3pid': (var req) => {
'threepids': [
{
'medium': 'email',
@ -1149,7 +1149,7 @@ class FakeMatrixApi extends MockClient {
}
]
},
'/client/r0/devices': (var req) => {
'/client/v3/devices': (var req) => {
'devices': [
{
'device_id': 'QBUAZIFURK',
@ -1159,7 +1159,7 @@ class FakeMatrixApi extends MockClient {
}
]
},
'/client/r0/notifications?from=1234&limit=10&only=1234': (var req) => {
'/client/v3/notifications?from=1234&limit=10&only=1234': (var req) => {
'next_token': 'abcdef',
'notifications': [
{
@ -1185,21 +1185,21 @@ class FakeMatrixApi extends MockClient {
}
]
},
'/client/r0/devices/QBUAZIFURK': (var req) => {
'/client/v3/devices/QBUAZIFURK': (var req) => {
'device_id': 'QBUAZIFURK',
'display_name': 'android',
'last_seen_ip': '1.2.3.4',
'last_seen_ts': 1474491775024
},
'/client/r0/profile/%40alice%3Aexample.com/displayname': (var reqI) =>
'/client/v3/profile/%40alice%3Aexample.com/displayname': (var reqI) =>
{'displayname': 'Alice M'},
'/client/r0/profile/%40alice%3Aexample.com/avatar_url': (var reqI) =>
'/client/v3/profile/%40alice%3Aexample.com/avatar_url': (var reqI) =>
{'avatar_url': 'mxc://test'},
'/client/r0/profile/%40alice%3Aexample.com': (var reqI) => {
'/client/v3/profile/%40alice%3Aexample.com': (var reqI) => {
'avatar_url': 'mxc://test',
'displayname': 'Alice M',
},
'/client/r0/voip/turnServer': (var req) => {
'/client/v3/voip/turnServer': (var req) => {
'username': '1443779631:@user:example.com',
'password': 'JlKfBy1QwLrO20385QyAtEyIv0=',
'uris': [
@ -1209,18 +1209,18 @@ class FakeMatrixApi extends MockClient {
],
'ttl': 86400
},
'/client/r0/presence/${Uri.encodeComponent('@alice:example.com')}/status':
'/client/v3/presence/${Uri.encodeComponent('@alice:example.com')}/status':
(var req) => {
'presence': 'unavailable',
'last_active_ago': 420845,
'status_msg': 'test',
'currently_active': false
},
'/client/r0/keys/changes?from=1234&to=1234': (var req) => {
'/client/v3/keys/changes?from=1234&to=1234': (var req) => {
'changed': ['@alice:example.com', '@bob:example.org'],
'left': ['@clara:example.com', '@doug:example.org']
},
'/client/r0/pushers': (var req) => {
'/client/v3/pushers': (var req) => {
'pushers': [
{
'pushkey': 'Xp/MzCt8/9DcSNE9cuiaoT5Ac55job3TdLSSmtmYl4A=',
@ -1237,7 +1237,7 @@ class FakeMatrixApi extends MockClient {
}
]
},
'/client/r0/publicRooms?limit=10&since=1234&server=example.com':
'/client/v3/publicRooms?limit=10&since=1234&server=example.com':
(var req) => {
'chunk': [
{
@ -1256,30 +1256,30 @@ class FakeMatrixApi extends MockClient {
'prev_batch': 'p1902',
'total_room_count_estimate': 115
},
'/client/r0/room/!localpart%3Aexample.com/aliases': (var req) => {
'/client/v3/room/!localpart%3Aexample.com/aliases': (var req) => {
'aliases': [
'#somewhere:example.com',
'#another:example.com',
'#hat_trick:example.com'
]
},
'/client/r0/joined_rooms': (var req) => {
'/client/v3/joined_rooms': (var req) => {
'joined_rooms': ['!foo:example.com']
},
'/client/r0/directory/list/room/!localpart%3Aexample.com': (var req) =>
'/client/v3/directory/list/room/!localpart%3Aexample.com': (var req) =>
{'visibility': 'public'},
'/client/r0/rooms/1/state/m.room.member/@alice:example.com': (var req) =>
'/client/v3/rooms/1/state/m.room.member/@alice:example.com': (var req) =>
{'displayname': 'Alice'},
'/client/r0/profile/%40getme%3Aexample.com': (var req) => {
'/client/v3/profile/%40getme%3Aexample.com': (var req) => {
'avatar_url': 'mxc://test',
'displayname': 'You got me',
},
'/client/r0/rooms/!localpart%3Aserver.abc/state/m.room.member/@getme%3Aexample.com':
'/client/v3/rooms/!localpart%3Aserver.abc/state/m.room.member/@getme%3Aexample.com':
(var req) => {
'avatar_url': 'mxc://test',
'displayname': 'You got me',
},
'/client/r0/rooms/!localpart%3Aserver.abc/state': (var req) => [
'/client/v3/rooms/!localpart%3Aserver.abc/state': (var req) => [
{
'content': {'join_rule': 'public'},
'type': 'm.room.join_rules',
@ -1344,12 +1344,12 @@ class FakeMatrixApi extends MockClient {
'state_key': ''
}
],
'/client/r0/rooms/!localpart:server.abc/state/m.room.member/@getme:example.com':
'/client/v3/rooms/!localpart:server.abc/state/m.room.member/@getme:example.com':
(var req) => {
'avatar_url': 'mxc://test',
'displayname': 'You got me',
},
'/client/r0/rooms/!localpart:server.abc/event/1234': (var req) => {
'/client/v3/rooms/!localpart:server.abc/event/1234': (var req) => {
'content': {
'body': 'This is an example text message',
'msgtype': 'm.text',
@ -1363,7 +1363,7 @@ class FakeMatrixApi extends MockClient {
'origin_server_ts': 1432735824653,
'unsigned': {'age': 1234}
},
'/client/r0/rooms/!localpart%3Aserver.abc/event/1234': (var req) => {
'/client/v3/rooms/!localpart%3Aserver.abc/event/1234': (var req) => {
'content': {
'body': 'This is an example text message',
'msgtype': 'm.text',
@ -1377,11 +1377,11 @@ class FakeMatrixApi extends MockClient {
'origin_server_ts': 1432735824653,
'unsigned': {'age': 1234}
},
'/client/r0/rooms/!1234%3Aexample.com/event/not_found': (var req) => {
'/client/v3/rooms/!1234%3Aexample.com/event/not_found': (var req) => {
'errcode': 'M_NOT_FOUND',
'error': 'Event not found',
},
'/client/r0/rooms/!1234%3Aexample.com/event/unencrypted_event':
'/client/v3/rooms/!1234%3Aexample.com/event/unencrypted_event':
(var req) => {
'content': {
'body': 'This is an example text message',
@ -1396,7 +1396,7 @@ class FakeMatrixApi extends MockClient {
'origin_server_ts': 1432735824653,
'unsigned': {'age': 1234}
},
'/client/r0/rooms/!1234%3Aexample.com/event/encrypted_event': (var req) =>
'/client/v3/rooms/!1234%3Aexample.com/event/encrypted_event': (var req) =>
{
'content': {
'algorithm': 'm.megolm.v1.aes-sha2',
@ -1412,37 +1412,33 @@ class FakeMatrixApi extends MockClient {
'origin_server_ts': 1432735824653,
'unsigned': {'age': 1234}
},
'/client/r0/rooms/!localpart%3Aserver.abc/messages?from=1234&dir=b&to=1234&limit=10&filter=%7B%22lazy_load_members%22%3Atrue%7D':
'/client/v3/rooms/!localpart%3Aserver.abc/messages?from=1234&dir=b&to=1234&limit=10&filter=%7B%22lazy_load_members%22%3Atrue%7D':
(var req) => messagesResponsePast,
'/client/r0/rooms/!localpart%3Aserver.abc/messages?from=&dir=b&limit=10&filter=%7B%22lazy_load_members%22%3Atrue%7D':
'/client/v3/rooms/!localpart%3Aserver.abc/messages?from=&dir=b&limit=10&filter=%7B%22lazy_load_members%22%3Atrue%7D':
(var req) => messagesResponsePast,
'/client/r0/rooms/!1234%3Aexample.com/messages?from=1234&dir=b&limit=30&filter=%7B%22lazy_load_members%22%3Atrue%7D':
'/client/v3/rooms/!1234%3Aexample.com/messages?from=1234&dir=b&limit=30&filter=%7B%22lazy_load_members%22%3Atrue%7D':
(var req) => messagesResponsePast,
'/client/r0/rooms/!localpart%3Aserver.abc/messages?from=t456&dir=f&to=1234&limit=10&filter=%7B%22lazy_load_members%22%3Atrue%7D':
'/client/v3/rooms/!localpart%3Aserver.abc/messages?from=t456&dir=f&to=1234&limit=10&filter=%7B%22lazy_load_members%22%3Atrue%7D':
(var req) => messagesResponseFuture,
'/client/r0/rooms/!1234%3Aexample.com/messages?from=t456&dir=f&limit=30&filter=%7B%22lazy_load_members%22%3Atrue%7D':
'/client/v3/rooms/!1234%3Aexample.com/messages?from=t456&dir=f&limit=30&filter=%7B%22lazy_load_members%22%3Atrue%7D':
(var req) => messagesResponseFuture,
'/client/r0/rooms/!localpart%3Aserver.abc/messages?from=t789&dir=f&to=1234&limit=10&filter=%7B%22lazy_load_members%22%3Atrue%7D':
'/client/v3/rooms/!localpart%3Aserver.abc/messages?from=t789&dir=f&to=1234&limit=10&filter=%7B%22lazy_load_members%22%3Atrue%7D':
(var req) => messagesResponseFutureEnd,
'/client/r0/rooms/!1234%3Aexample.com/messages?from=t789&dir=f&limit=30&filter=%7B%22lazy_load_members%22%3Atrue%7D':
'/client/v3/rooms/!1234%3Aexample.com/messages?from=t789&dir=f&limit=30&filter=%7B%22lazy_load_members%22%3Atrue%7D':
(var req) => messagesResponseFutureEnd,
'/client/versions': (var req) => {
'versions': [
'r0.0.1',
'r0.1.0',
'r0.2.0',
'r0.3.0',
'r0.4.0',
'r0.5.0'
'v1.1',
'v1.2',
],
'unstable_features': {'m.lazy_load_members': true},
},
'/client/r0/login': (var req) => {
'/client/v3/login': (var req) => {
'flows': [
{'type': 'm.login.password'}
]
},
'/client/r0/rooms/!localpart%3Aserver.abc/joined_members': (var req) => {
'/client/v3/rooms/!localpart%3Aserver.abc/joined_members': (var req) => {
'joined': {
'@bar:example.com': {
'display_name': 'Bar',
@ -1450,7 +1446,7 @@ class FakeMatrixApi extends MockClient {
}
}
},
'/client/r0/rooms/!localpart%3Aserver.abc/members?at=1234&membership=join&not_membership=leave':
'/client/v3/rooms/!localpart%3Aserver.abc/members?at=1234&membership=join&not_membership=leave':
(var req) => {
'chunk': [
{
@ -1469,7 +1465,7 @@ class FakeMatrixApi extends MockClient {
}
]
},
'/client/r0/rooms/!696r7674:example.com/members': (var req) => {
'/client/v3/rooms/!696r7674:example.com/members': (var req) => {
'chunk': [
{
'content': {
@ -1487,7 +1483,7 @@ class FakeMatrixApi extends MockClient {
}
]
},
'/client/r0/rooms/!726s6s6q:example.com/members': (var req) => {
'/client/v3/rooms/!726s6s6q:example.com/members': (var req) => {
'chunk': [
{
'content': {
@ -1505,7 +1501,7 @@ class FakeMatrixApi extends MockClient {
}
]
},
'/client/r0/rooms/!localpart%3Aserver.abc/members': (var req) => {
'/client/v3/rooms/!localpart%3Aserver.abc/members': (var req) => {
'chunk': [
{
'content': {
@ -1523,20 +1519,20 @@ class FakeMatrixApi extends MockClient {
}
]
},
'/client/r0/pushrules/global/content/nocake': (var req) => {
'/client/v3/pushrules/global/content/nocake': (var req) => {
'actions': ['dont_notify'],
'pattern': 'cake*lie',
'rule_id': 'nocake',
'enabled': true,
'default': false
},
'/client/r0/pushrules/global/content/nocake/enabled': (var req) => {
'/client/v3/pushrules/global/content/nocake/enabled': (var req) => {
'enabled': true,
},
'/client/r0/pushrules/global/content/nocake/actions': (var req) => {
'/client/v3/pushrules/global/content/nocake/actions': (var req) => {
'actions': ['notify']
},
'/client/r0/pushrules': (var req) => {
'/client/v3/pushrules': (var req) => {
'global': {
'content': [
{
@ -1681,14 +1677,14 @@ class FakeMatrixApi extends MockClient {
]
}
},
'/client/r0/sync?filter=%7B%22room%22%3A%7B%22include_leave%22%3Atrue%2C%22timeline%22%3A%7B%22limit%22%3A10%7D%7D%7D&timeout=0':
'/client/v3/sync?filter=%7B%22room%22%3A%7B%22include_leave%22%3Atrue%2C%22timeline%22%3A%7B%22limit%22%3A10%7D%7D%7D&timeout=0':
(var req) => archiveSyncResponse,
'/client/r0/sync?filter=1234': (var req) => syncResponse,
'/client/r0/sync?filter=1234&since=1234&full_state=false&set_presence=unavailable&timeout=15':
'/client/v3/sync?filter=1234': (var req) => syncResponse,
'/client/v3/sync?filter=1234&since=1234&full_state=false&set_presence=unavailable&timeout=15':
(var req) => syncResponse,
'/client/r0/register/available?username=testuser': (var req) =>
'/client/v3/register/available?username=testuser': (var req) =>
{'available': true},
'/client/r0/user/${Uri.encodeComponent('@test:fakeServer.notExisting')}/filter/1234':
'/client/v3/user/${Uri.encodeComponent('@test:fakeServer.notExisting')}/filter/1234':
(var req) => {
'room': {
'state': {
@ -1719,7 +1715,7 @@ class FakeMatrixApi extends MockClient {
'event_format': 'client',
'event_fields': ['type', 'content', 'sender']
},
'/client/unstable/room_keys/version': (var req) => {
'/client/v3/room_keys/version': (var req) => {
'algorithm': AlgorithmTypes.megolmBackupV1Curve25519AesSha2,
'auth_data': {
'public_key': 'GXYaxqhNhUK28zUdxOmEsFRguz+PzBsDlTLlF0O0RkM',
@ -1729,7 +1725,7 @@ class FakeMatrixApi extends MockClient {
'etag': '0',
'version': '5',
},
'/client/unstable/room_keys/keys/${Uri.encodeComponent('!726s6s6q:example.com')}/${Uri.encodeComponent('ciM/JWTPrmiWPPZNkRLDPQYf9AW/I46bxyLSr+Bx5oU')}?version=5':
'/client/v3/room_keys/keys/${Uri.encodeComponent('!726s6s6q:example.com')}/${Uri.encodeComponent('ciM/JWTPrmiWPPZNkRLDPQYf9AW/I46bxyLSr+Bx5oU')}?version=5':
(var req) => {
'first_message_index': 0,
'forwarded_count': 0,
@ -1741,7 +1737,7 @@ class FakeMatrixApi extends MockClient {
'mac': 'QzKV/fgAs4U',
},
},
'/client/unstable/room_keys/keys/${Uri.encodeComponent('!726s6s6q:example.com')}?version=5':
'/client/v3/room_keys/keys/${Uri.encodeComponent('!726s6s6q:example.com')}?version=5':
(var req) => {
'sessions': {
'ciM/JWTPrmiWPPZNkRLDPQYf9AW/I46bxyLSr+Bx5oU': {
@ -1758,7 +1754,7 @@ class FakeMatrixApi extends MockClient {
},
},
},
'/client/unstable/room_keys/keys?version=5': (var req) => {
'/client/v3/room_keys/keys?version=5': (var req) => {
'rooms': {
'!726s6s6q:example.com': {
'sessions': {
@ -1780,16 +1776,16 @@ class FakeMatrixApi extends MockClient {
},
},
'POST': {
'/client/r0/delete_devices': (var req) => {},
'/client/r0/account/3pid/add': (var req) => {},
'/client/r0/account/3pid/bind': (var req) => {},
'/client/r0/account/3pid/delete': (var req) =>
'/client/v3/delete_devices': (var req) => {},
'/client/v3/account/3pid/add': (var req) => {},
'/client/v3/account/3pid/bind': (var req) => {},
'/client/v3/account/3pid/delete': (var req) =>
{'id_server_unbind_result': 'success'},
'/client/r0/account/3pid/unbind': (var req) =>
'/client/v3/account/3pid/unbind': (var req) =>
{'id_server_unbind_result': 'success'},
'/client/r0/account/password': (var req) => {},
'/client/r0/rooms/1234/report/1234': (var req) => {},
'/client/r0/search': (var req) => {
'/client/v3/account/password': (var req) => {},
'/client/v3/rooms/1234/report/1234': (var req) => {},
'/client/v3/search': (var req) => {
'search_categories': {
'room_events': {
'groups': {
@ -1827,9 +1823,9 @@ class FakeMatrixApi extends MockClient {
}
}
},
'/client/r0/account/deactivate': (var req) =>
'/client/v3/account/deactivate': (var req) =>
{'id_server_unbind_result': 'success'},
'/client/r0/user_directory/search': (var req) => {
'/client/v3/user_directory/search': (var req) => {
'results': [
{
'user_id': '@foo:bar.com',
@ -1839,39 +1835,39 @@ class FakeMatrixApi extends MockClient {
],
'limited': false
},
'/client/r0/register/email/requestToken': (var req) => {
'/client/v3/register/email/requestToken': (var req) => {
'sid': '123abc',
'submit_url': 'https://example.org/path/to/submitToken'
},
'/client/r0/register/msisdn/requestToken': (var req) => {
'/client/v3/register/msisdn/requestToken': (var req) => {
'sid': '123abc',
'submit_url': 'https://example.org/path/to/submitToken'
},
'/client/r0/account/password/email/requestToken': (var req) => {
'/client/v3/account/password/email/requestToken': (var req) => {
'sid': '123abc',
'submit_url': 'https://example.org/path/to/submitToken'
},
'/client/r0/account/password/msisdn/requestToken': (var req) => {
'/client/v3/account/password/msisdn/requestToken': (var req) => {
'sid': '123abc',
'submit_url': 'https://example.org/path/to/submitToken'
},
'/client/r0/account/3pid/email/requestToken': (var req) => {
'/client/v3/account/3pid/email/requestToken': (var req) => {
'sid': '123abc',
'submit_url': 'https://example.org/path/to/submitToken'
},
'/client/r0/account/3pid/msisdn/requestToken': (var req) => {
'/client/v3/account/3pid/msisdn/requestToken': (var req) => {
'sid': '123abc',
'submit_url': 'https://example.org/path/to/submitToken'
},
'/client/r0/rooms/!localpart%3Aexample.com/receipt/m.read/%241234%3Aexample.com':
'/client/v3/rooms/!localpart%3Aexample.com/receipt/m.read/%241234%3Aexample.com':
(var req) => {},
'/client/r0/rooms/!localpart%3Aexample.com/read_markers': (var req) => {},
'/client/r0/rooms/!1234%3Aexample.com/read_markers': (var req) => {},
'/client/r0/user/${Uri.encodeComponent('@othertest:fakeServer.notExisting')}/filter':
'/client/v3/rooms/!localpart%3Aexample.com/read_markers': (var req) => {},
'/client/v3/rooms/!1234%3Aexample.com/read_markers': (var req) => {},
'/client/v3/user/${Uri.encodeComponent('@othertest:fakeServer.notExisting')}/filter':
(var req) => {'filter_id': '1234'},
'/client/r0/user/${Uri.encodeComponent('@test:fakeServer.notExisting')}/filter':
'/client/v3/user/${Uri.encodeComponent('@test:fakeServer.notExisting')}/filter':
(var req) => {'filter_id': '1234'},
'/client/r0/publicRooms?server=example.com': (var req) => {
'/client/v3/publicRooms?server=example.com': (var req) => {
'chunk': [
{
'aliases': ['#murrays:cheese.bar'],
@ -1889,7 +1885,7 @@ class FakeMatrixApi extends MockClient {
'prev_batch': 'p1902',
'total_room_count_estimate': 115
},
'/client/r0/keys/claim': (var req) => {
'/client/v3/keys/claim': (var req) => {
'failures': {},
'one_time_keys': {
if (decodeJson(req)['one_time_keys']['@alice:example.com'] !=
@ -1925,32 +1921,32 @@ class FakeMatrixApi extends MockClient {
},
}
},
'/client/r0/rooms/!localpart%3Aexample.com/invite': (var req) => {},
'/client/r0/rooms/!1234%3AfakeServer.notExisting/invite': (var req) => {},
'/client/r0/rooms/!localpart%3Aexample.com/leave': (var req) => {},
'/client/r0/rooms/!1234%3AfakeServer.notExisting/leave': (var req) => {},
'/client/r0/rooms/!localpart%3Aexample.com/forget': (var req) => {},
'/client/r0/rooms/!localpart%3Aserver.abc/kick': (var req) => {},
'/client/r0/rooms/!1234%3AfakeServer.notExisting/kick': (var req) => {},
'/client/r0/rooms/!localpart%3Aexample.com/kick': (var req) => {},
'/client/r0/rooms/!localpart%3Aexample.com/ban': (var req) => {},
'/client/r0/rooms/!1234%3AfakeServer.notExisting/ban': (var req) => {},
'/client/r0/rooms/!localpart%3Aexample.com/unban': (var req) => {},
'/client/r0/rooms/!1234%3AfakeServer.notExisting/unban': (var req) => {},
'/client/r0/rooms/!localpart%3Aexample.com/join': (var req) =>
'/client/v3/rooms/!localpart%3Aexample.com/invite': (var req) => {},
'/client/v3/rooms/!1234%3AfakeServer.notExisting/invite': (var req) => {},
'/client/v3/rooms/!localpart%3Aexample.com/leave': (var req) => {},
'/client/v3/rooms/!1234%3AfakeServer.notExisting/leave': (var req) => {},
'/client/v3/rooms/!localpart%3Aexample.com/forget': (var req) => {},
'/client/v3/rooms/!localpart%3Aserver.abc/kick': (var req) => {},
'/client/v3/rooms/!1234%3AfakeServer.notExisting/kick': (var req) => {},
'/client/v3/rooms/!localpart%3Aexample.com/kick': (var req) => {},
'/client/v3/rooms/!localpart%3Aexample.com/ban': (var req) => {},
'/client/v3/rooms/!1234%3AfakeServer.notExisting/ban': (var req) => {},
'/client/v3/rooms/!localpart%3Aexample.com/unban': (var req) => {},
'/client/v3/rooms/!1234%3AfakeServer.notExisting/unban': (var req) => {},
'/client/v3/rooms/!localpart%3Aexample.com/join': (var req) =>
{'room_id': '!localpart:example.com'},
'/client/r0/join/!localpart%3Aexample.com?server_name=example.com&server_name=example.abc':
'/client/v3/join/!localpart%3Aexample.com?server_name=example.com&server_name=example.abc':
(var req) => {'room_id': '!localpart:example.com'},
'/client/r0/join/!newroom%3Aexample.com': (var req) =>
'/client/v3/join/!newroom%3Aexample.com': (var req) =>
{'room_id': '!newroom%3A:example.com'},
'/client/r0/keys/upload': (var req) => {
'/client/v3/keys/upload': (var req) => {
'one_time_key_counts': {
'curve25519': 10,
'signed_curve25519':
decodeJson(req)['one_time_keys']?.keys?.length ?? 0,
}
},
'/client/r0/keys/query': (var req) => {
'/client/v3/keys/query': (var req) => {
'failures': {},
'device_keys': {
'@alice:example.com': {
@ -2133,30 +2129,30 @@ class FakeMatrixApi extends MockClient {
},
},
},
'/client/r0/register': (var req) => {
'/client/v3/register': (var req) => {
'user_id': '@testuser:example.com',
'access_token': '1234',
'device_id': 'ABCD',
},
'/client/r0/register?kind=user': (var req) =>
'/client/v3/register?kind=user': (var req) =>
{'user_id': '@testuser:example.com'},
'/client/r0/register?kind=guest': (var req) =>
'/client/v3/register?kind=guest': (var req) =>
{'user_id': '@testuser:example.com'},
'/client/r0/rooms/1234/upgrade': (var req) => {},
'/client/r0/user/1234/openid/request_token': (var req) => {
'/client/v3/rooms/1234/upgrade': (var req) => {},
'/client/v3/user/1234/openid/request_token': (var req) => {
'access_token': 'SomeT0kenHere',
'token_type': 'Bearer',
'matrix_server_name': 'example.com',
'expires_in': 3600.0
},
'/client/r0/user/@test:fakeServer.notExisting/openid/request_token':
'/client/v3/user/@test:fakeServer.notExisting/openid/request_token':
(var req) => {
'access_token': 'SomeT0kenHere',
'token_type': 'Bearer',
'matrix_server_name': 'example.com',
'expires_in': 3600
},
'/client/r0/login': (var req) => {
'/client/v3/login': (var req) => {
'user_id': '@test:fakeServer.notExisting',
'access_token': 'abc123',
'device_id': 'GHTYAJCE',
@ -2165,21 +2161,21 @@ class FakeMatrixApi extends MockClient {
'm.identity_server': {'base_url': 'https://id.example.org'}
}
},
'/media/r0/upload?filename=file.jpeg': (var req) =>
'/media/v3/upload?filename=file.jpeg': (var req) =>
{'content_uri': 'mxc://example.com/AQwafuaFswefuhsfAFAgsw'},
'/client/r0/logout': (var reqI) => {},
'/client/r0/pushers/set': (var reqI) => {},
'/client/r0/join/1234': (var reqI) => {'room_id': '1234'},
'/client/r0/logout/all': (var reqI) => {},
'/client/r0/createRoom': (var reqI) => {
'/client/v3/logout': (var reqI) => {},
'/client/v3/pushers/set': (var reqI) => {},
'/client/v3/join/1234': (var reqI) => {'room_id': '1234'},
'/client/v3/logout/all': (var reqI) => {},
'/client/v3/createRoom': (var reqI) => {
'room_id': '!1234:fakeServer.notExisting',
},
'/client/r0/rooms/!localpart%3Aserver.abc/read_markers': (var reqI) => {},
'/client/r0/rooms/!localpart:server.abc/kick': (var reqI) => {},
'/client/r0/rooms/!localpart%3Aserver.abc/ban': (var reqI) => {},
'/client/r0/rooms/!localpart%3Aserver.abc/unban': (var reqI) => {},
'/client/r0/rooms/!localpart%3Aserver.abc/invite': (var reqI) => {},
'/client/unstable/keys/device_signing/upload': (var reqI) {
'/client/v3/rooms/!localpart%3Aserver.abc/read_markers': (var reqI) => {},
'/client/v3/rooms/!localpart:server.abc/kick': (var reqI) => {},
'/client/v3/rooms/!localpart%3Aserver.abc/ban': (var reqI) => {},
'/client/v3/rooms/!localpart%3Aserver.abc/unban': (var reqI) => {},
'/client/v3/rooms/!localpart%3Aserver.abc/invite': (var reqI) => {},
'/client/v3/keys/device_signing/upload': (var reqI) {
if (client != null) {
final jsonBody = decodeJson(reqI);
for (final keyType in {
@ -2201,163 +2197,163 @@ class FakeMatrixApi extends MockClient {
}
return {};
},
'/client/r0/keys/signatures/upload': (var reqI) => {'failures': {}},
'/client/unstable/room_keys/version': (var reqI) => {'version': '5'},
'/client/v3/keys/signatures/upload': (var reqI) => {'failures': {}},
'/client/v3/room_keys/version': (var reqI) => {'version': '5'},
},
'PUT': {
'/client/r0/user/${Uri.encodeComponent('@alice:example.com')}/account_data/io.element.recent_emoji}':
'/client/v3/user/${Uri.encodeComponent('@alice:example.com')}/account_data/io.element.recent_emoji}':
(var req) => {},
'/client/r0/user/%40test%3AfakeServer.notExisting/account_data/io.element.recent_emoji':
'/client/v3/user/%40test%3AfakeServer.notExisting/account_data/io.element.recent_emoji':
(var req) => {},
'/client/r0/user/%40test%3AfakeServer.notExisting/account_data/m.ignored_user_list':
'/client/v3/user/%40test%3AfakeServer.notExisting/account_data/m.ignored_user_list':
(var req) => {},
'/client/r0/presence/${Uri.encodeComponent('@alice:example.com')}/status':
'/client/v3/presence/${Uri.encodeComponent('@alice:example.com')}/status':
(var req) => {},
'/client/r0/pushrules/global/content/nocake/enabled': (var req) => {},
'/client/r0/pushrules/global/content/nocake/actions': (var req) => {},
'/client/r0/rooms/!localpart%3Aserver.abc/state/m.room.history_visibility':
'/client/v3/pushrules/global/content/nocake/enabled': (var req) => {},
'/client/v3/pushrules/global/content/nocake/actions': (var req) => {},
'/client/v3/rooms/!localpart%3Aserver.abc/state/m.room.history_visibility':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!localpart%3Aserver.abc/state/m.room.join_rules':
'/client/v3/rooms/!localpart%3Aserver.abc/state/m.room.join_rules':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!localpart%3Aserver.abc/state/m.room.guest_access':
'/client/v3/rooms/!localpart%3Aserver.abc/state/m.room.guest_access':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!localpart%3Aserver.abc/send/m.call.invite/1234':
'/client/v3/rooms/!localpart%3Aserver.abc/send/m.call.invite/1234':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!localpart%3Aserver.abc/send/m.call.answer/1234':
'/client/v3/rooms/!localpart%3Aserver.abc/send/m.call.answer/1234':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!localpart%3Aserver.abc/send/m.call.select_answer/1234':
'/client/v3/rooms/!localpart%3Aserver.abc/send/m.call.select_answer/1234':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!localpart%3Aserver.abc/send/m.call.reject/1234':
'/client/v3/rooms/!localpart%3Aserver.abc/send/m.call.reject/1234':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!localpart%3Aserver.abc/send/m.call.negotiate/1234':
'/client/v3/rooms/!localpart%3Aserver.abc/send/m.call.negotiate/1234':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!localpart%3Aserver.abc/send/m.call.candidates/1234':
'/client/v3/rooms/!localpart%3Aserver.abc/send/m.call.candidates/1234':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!localpart%3Aserver.abc/send/m.call.hangup/1234':
'/client/v3/rooms/!localpart%3Aserver.abc/send/m.call.hangup/1234':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!localpart%3Aserver.abc/send/m.call.replaces/1234':
'/client/v3/rooms/!localpart%3Aserver.abc/send/m.call.replaces/1234':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!localpart%3Aserver.abc/send/m.call.asserted_identity/1234':
'/client/v3/rooms/!localpart%3Aserver.abc/send/m.call.asserted_identity/1234':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!localpart%3Aserver.abc/send/m.call.sdp_stream_metadata_changed/1234':
'/client/v3/rooms/!localpart%3Aserver.abc/send/m.call.sdp_stream_metadata_changed/1234':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!localpart%3Aserver.abc/send/org.matrix.call.sdp_stream_metadata_changed/1234':
'/client/v3/rooms/!localpart%3Aserver.abc/send/org.matrix.call.sdp_stream_metadata_changed/1234':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!localpart%3Aserver.abc/send/org.matrix.call.asserted_identity/1234':
'/client/v3/rooms/!localpart%3Aserver.abc/send/org.matrix.call.asserted_identity/1234':
(var req) => {'event_id': '1234'},
'/client/r0/rooms/!1234%3Aexample.com/redact/1143273582443PhrSn%3Aexample.org/1234':
'/client/v3/rooms/!1234%3Aexample.com/redact/1143273582443PhrSn%3Aexample.org/1234':
(var req) => {'event_id': '1234'},
'/client/r0/pushrules/global/room/!localpart%3Aserver.abc': (var req) =>
'/client/v3/pushrules/global/room/!localpart%3Aserver.abc': (var req) =>
{},
'/client/r0/pushrules/global/override/.m.rule.master/enabled':
'/client/v3/pushrules/global/override/.m.rule.master/enabled':
(var req) => {},
'/client/r0/pushrules/global/content/nocake?before=1&after=2':
'/client/v3/pushrules/global/content/nocake?before=1&after=2':
(var req) => {},
'/client/r0/devices/QBUAZIFURK': (var req) => {},
'/client/r0/directory/room/%23testalias%3Aexample.com': (var reqI) => {},
'/client/r0/rooms/!localpart%3Aserver.abc/send/m.room.message/testtxid':
'/client/v3/devices/QBUAZIFURK': (var req) => {},
'/client/v3/directory/room/%23testalias%3Aexample.com': (var reqI) => {},
'/client/v3/rooms/!localpart%3Aserver.abc/send/m.room.message/testtxid':
(var reqI) => {
'event_id': '\$event${FakeMatrixApi.eventCounter++}',
},
'/client/r0/rooms/!localpart%3Aserver.abc/send/m.reaction/testtxid':
'/client/v3/rooms/!localpart%3Aserver.abc/send/m.reaction/testtxid':
(var reqI) => {
'event_id': '\$event${FakeMatrixApi.eventCounter++}',
},
'/client/r0/rooms/!localpart%3Aexample.com/typing/%40alice%3Aexample.com':
'/client/v3/rooms/!localpart%3Aexample.com/typing/%40alice%3Aexample.com':
(var req) => {},
'/client/r0/rooms/!1234%3Aexample.com/send/m.room.message/1234':
'/client/v3/rooms/!1234%3Aexample.com/send/m.room.message/1234':
(var reqI) => {
'event_id': '\$event${FakeMatrixApi.eventCounter++}',
},
'/client/r0/rooms/!1234%3Aexample.com/send/m.room.message/newresend':
'/client/v3/rooms/!1234%3Aexample.com/send/m.room.message/newresend':
(var reqI) => {
'event_id': '\$event${FakeMatrixApi.eventCounter++}',
},
'/client/r0/user/%40test%3AfakeServer.notExisting/rooms/!localpart%3Aserver.abc/tags/m.favourite':
'/client/v3/user/%40test%3AfakeServer.notExisting/rooms/!localpart%3Aserver.abc/tags/m.favourite':
(var req) => {},
'/client/r0/user/%40alice%3Aexample.com/rooms/!localpart%3Aexample.com/tags/testtag':
'/client/v3/user/%40alice%3Aexample.com/rooms/!localpart%3Aexample.com/tags/testtag':
(var req) => {},
'/client/r0/user/%40alice%3Aexample.com/account_data/test.account.data':
'/client/v3/user/%40alice%3Aexample.com/account_data/test.account.data':
(var req) => {},
'/client/r0/user/%40test%3AfakeServer.notExisting/account_data/best%20animal':
'/client/v3/user/%40test%3AfakeServer.notExisting/account_data/best%20animal':
(var req) => {},
'/client/r0/user/%40alice%3Aexample.com/rooms/1234/account_data/test.account.data':
'/client/v3/user/%40alice%3Aexample.com/rooms/1234/account_data/test.account.data':
(var req) => {},
'/client/r0/user/%40test%3AfakeServer.notExisting/rooms/!localpart%3Aserver.abc/account_data/com.famedly.marked_unread':
'/client/v3/user/%40test%3AfakeServer.notExisting/rooms/!localpart%3Aserver.abc/account_data/com.famedly.marked_unread':
(var req) => {},
'/client/r0/user/%40test%3AfakeServer.notExisting/account_data/m.direct':
'/client/v3/user/%40test%3AfakeServer.notExisting/account_data/m.direct':
(var req) => {},
'/client/r0/user/%40othertest%3AfakeServer.notExisting/account_data/m.direct':
'/client/v3/user/%40othertest%3AfakeServer.notExisting/account_data/m.direct':
(var req) => {},
'/client/r0/profile/%40alice%3Aexample.com/displayname': (var reqI) => {},
'/client/r0/profile/%40alice%3Aexample.com/avatar_url': (var reqI) => {},
'/client/r0/profile/%40test%3AfakeServer.notExisting/avatar_url':
'/client/v3/profile/%40alice%3Aexample.com/displayname': (var reqI) => {},
'/client/v3/profile/%40alice%3Aexample.com/avatar_url': (var reqI) => {},
'/client/v3/profile/%40test%3AfakeServer.notExisting/avatar_url':
(var reqI) => {},
'/client/r0/rooms/!localpart%3Aserver.abc/state/m.room.encryption':
'/client/v3/rooms/!localpart%3Aserver.abc/state/m.room.encryption':
(var reqI) => {'event_id': 'YUwRidLecu:example.com'},
'/client/r0/rooms/!localpart%3Aserver.abc/state/m.room.avatar':
'/client/v3/rooms/!localpart%3Aserver.abc/state/m.room.avatar':
(var reqI) => {'event_id': 'YUwRidLecu:example.com'},
'/client/r0/rooms/!localpart%3Aserver.abc/send/m.room.message/1234':
'/client/v3/rooms/!localpart%3Aserver.abc/send/m.room.message/1234':
(var reqI) => {'event_id': 'YUwRidLecu:example.com'},
'/client/r0/rooms/!localpart%3Aserver.abc/redact/1234/1234': (var reqI) =>
'/client/v3/rooms/!localpart%3Aserver.abc/redact/1234/1234': (var reqI) =>
{'event_id': 'YUwRidLecu:example.com'},
'/client/r0/rooms/!localpart%3Aserver.abc/state/m.room.name':
'/client/v3/rooms/!localpart%3Aserver.abc/state/m.room.name':
(var reqI) => {
'event_id': '42',
},
'/client/r0/rooms/!localpart%3Aserver.abc/state/m.room.topic':
'/client/v3/rooms/!localpart%3Aserver.abc/state/m.room.topic':
(var reqI) => {
'event_id': '42',
},
'/client/r0/rooms/!localpart%3Aserver.abc/state/m.room.pinned_events':
'/client/v3/rooms/!localpart%3Aserver.abc/state/m.room.pinned_events':
(var reqI) => {
'event_id': '42',
},
'/client/r0/rooms/!localpart%3Aserver.abc/state/m.room.power_levels':
'/client/v3/rooms/!localpart%3Aserver.abc/state/m.room.power_levels':
(var reqI) => {
'event_id': '42',
},
'/client/r0/directory/list/room/!localpart%3Aexample.com': (var req) =>
'/client/v3/directory/list/room/!localpart%3Aexample.com': (var req) =>
{},
'/client/unstable/room_keys/version/5': (var req) => {},
'/client/unstable/room_keys/keys/${Uri.encodeComponent('!726s6s6q:example.com')}/${Uri.encodeComponent('ciM/JWTPrmiWPPZNkRLDPQYf9AW/I46bxyLSr+Bx5oU')}?version=5':
'/client/v3/room_keys/version/5': (var req) => {},
'/client/v3/room_keys/keys/${Uri.encodeComponent('!726s6s6q:example.com')}/${Uri.encodeComponent('ciM/JWTPrmiWPPZNkRLDPQYf9AW/I46bxyLSr+Bx5oU')}?version=5':
(var req) => {
'etag': 'asdf',
'count': 1,
},
'/client/unstable/room_keys/keys/${Uri.encodeComponent('!726s6s6q:example.com')}?version=5':
'/client/v3/room_keys/keys/${Uri.encodeComponent('!726s6s6q:example.com')}?version=5':
(var req) => {
'etag': 'asdf',
'count': 1,
},
'/client/unstable/room_keys/keys?version=5': (var req) => {
'/client/v3/room_keys/keys?version=5': (var req) => {
'etag': 'asdf',
'count': 1,
},
},
'DELETE': {
'/unknown/token': (var req) => {'errcode': 'M_UNKNOWN_TOKEN'},
'/client/r0/devices/QBUAZIFURK': (var req) => {},
'/client/r0/directory/room/%23testalias%3Aexample.com': (var reqI) => {},
'/client/r0/pushrules/global/content/nocake': (var req) => {},
'/client/r0/pushrules/global/override/!localpart%3Aserver.abc':
'/client/v3/devices/QBUAZIFURK': (var req) => {},
'/client/v3/directory/room/%23testalias%3Aexample.com': (var reqI) => {},
'/client/v3/pushrules/global/content/nocake': (var req) => {},
'/client/v3/pushrules/global/override/!localpart%3Aserver.abc':
(var req) => {},
'/client/r0/user/%40test%3AfakeServer.notExisting/rooms/!localpart%3Aserver.abc/tags/m.favourite':
'/client/v3/user/%40test%3AfakeServer.notExisting/rooms/!localpart%3Aserver.abc/tags/m.favourite':
(var req) => {},
'/client/r0/user/%40alice%3Aexample.com/rooms/!localpart%3Aexample.com/tags/testtag':
'/client/v3/user/%40alice%3Aexample.com/rooms/!localpart%3Aexample.com/tags/testtag':
(var req) => {},
'/client/unstable/room_keys/version/5': (var req) => {},
'/client/unstable/room_keys/keys/${Uri.encodeComponent('!726s6s6q:example.com')}/${Uri.encodeComponent('ciM/JWTPrmiWPPZNkRLDPQYf9AW/I46bxyLSr+Bx5oU')}?version=5':
'/client/v3/room_keys/version/5': (var req) => {},
'/client/v3/room_keys/keys/${Uri.encodeComponent('!726s6s6q:example.com')}/${Uri.encodeComponent('ciM/JWTPrmiWPPZNkRLDPQYf9AW/I46bxyLSr+Bx5oU')}?version=5':
(var req) => {
'etag': 'asdf',
'count': 1,
},
'/client/unstable/room_keys/keys/${Uri.encodeComponent('!726s6s6q:example.com')}?version=5':
'/client/v3/room_keys/keys/${Uri.encodeComponent('!726s6s6q:example.com')}?version=5':
(var req) => {
'etag': 'asdf',
'count': 1,
},
'/client/unstable/room_keys/keys?version=5': (var req) => {
'/client/v3/room_keys/keys?version=5': (var req) => {
'etag': 'asdf',
'count': 1,
},

View File

@ -35,9 +35,9 @@ void main() {
expect(content.isScheme('mxc'), true);
expect(content.getDownloadLink(client).toString(),
'${client.homeserver.toString()}/_matrix/media/r0/download/exampleserver.abc/abcdefghijklmn');
'${client.homeserver.toString()}/_matrix/media/v3/download/exampleserver.abc/abcdefghijklmn');
expect(content.getThumbnail(client, width: 50, height: 50).toString(),
'${client.homeserver.toString()}/_matrix/media/r0/thumbnail/exampleserver.abc/abcdefghijklmn?width=50&height=50&method=crop&animated=false');
'${client.homeserver.toString()}/_matrix/media/v3/thumbnail/exampleserver.abc/abcdefghijklmn?width=50&height=50&method=crop&animated=false');
expect(
content
.getThumbnail(client,
@ -46,7 +46,7 @@ void main() {
method: ThumbnailMethod.scale,
animated: true)
.toString(),
'${client.homeserver.toString()}/_matrix/media/r0/thumbnail/exampleserver.abc/abcdefghijklmn?width=50&height=50&method=scale&animated=true');
'${client.homeserver.toString()}/_matrix/media/v3/thumbnail/exampleserver.abc/abcdefghijklmn?width=50&height=50&method=scale&animated=true');
});
test('other port', () async {
final client = Client('testclient', httpClient: FakeMatrixApi());
@ -58,9 +58,9 @@ void main() {
expect(content.isScheme('mxc'), true);
expect(content.getDownloadLink(client).toString(),
'${client.homeserver.toString()}/_matrix/media/r0/download/exampleserver.abc/abcdefghijklmn');
'${client.homeserver.toString()}/_matrix/media/v3/download/exampleserver.abc/abcdefghijklmn');
expect(content.getThumbnail(client, width: 50, height: 50).toString(),
'${client.homeserver.toString()}/_matrix/media/r0/thumbnail/exampleserver.abc/abcdefghijklmn?width=50&height=50&method=crop&animated=false');
'${client.homeserver.toString()}/_matrix/media/v3/thumbnail/exampleserver.abc/abcdefghijklmn?width=50&height=50&method=crop&animated=false');
expect(
content
.getThumbnail(client,
@ -69,7 +69,7 @@ void main() {
method: ThumbnailMethod.scale,
animated: true)
.toString(),
'https://fakeserver.notexisting:1337/_matrix/media/r0/thumbnail/exampleserver.abc/abcdefghijklmn?width=50&height=50&method=scale&animated=true');
'https://fakeserver.notexisting:1337/_matrix/media/v3/thumbnail/exampleserver.abc/abcdefghijklmn?width=50&height=50&method=scale&animated=true');
});
test('other remote port', () async {
final client = Client('testclient', httpClient: FakeMatrixApi());
@ -80,9 +80,9 @@ void main() {
expect(content.isScheme('mxc'), true);
expect(content.getDownloadLink(client).toString(),
'${client.homeserver.toString()}/_matrix/media/r0/download/exampleserver.abc:1234/abcdefghijklmn');
'${client.homeserver.toString()}/_matrix/media/v3/download/exampleserver.abc:1234/abcdefghijklmn');
expect(content.getThumbnail(client, width: 50, height: 50).toString(),
'${client.homeserver.toString()}/_matrix/media/r0/thumbnail/exampleserver.abc:1234/abcdefghijklmn?width=50&height=50&method=crop&animated=false');
'${client.homeserver.toString()}/_matrix/media/v3/thumbnail/exampleserver.abc:1234/abcdefghijklmn?width=50&height=50&method=crop&animated=false');
});
});
}