diff --git a/lib/encryption/key_manager.dart b/lib/encryption/key_manager.dart index 4a589939..7d4d7368 100644 --- a/lib/encryption/key_manager.dart +++ b/lib/encryption/key_manager.dart @@ -631,7 +631,7 @@ class KeyManager { Future 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: { diff --git a/lib/src/client.dart b/lib/src/client.dart index 9bbfa9c3..1a40a2df 100644 --- a/lib/src/client.dart +++ b/lib/src/client.dart @@ -846,7 +846,7 @@ class Client extends MatrixApi { return pushrules != null ? PushRuleSet.fromJson(pushrules) : null; } - static const Set supportedVersions = {'r0.5.0', 'r0.6.0'}; + static const Set supportedVersions = {'v1.1', 'v1.2'}; static const List supportedDirectEncryptionAlgorithms = [ AlgorithmTypes.olmV1Curve25519AesSha2 ]; diff --git a/lib/src/room.dart b/lib/src/room.dart index 3ccc6380..15bc4719 100644 --- a/lib/src/room.dart +++ b/lib/src/room.dart @@ -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. diff --git a/lib/src/timeline.dart b/lib/src/timeline.dart index 1b2924b5..5bc57fae 100644 --- a/lib/src/timeline.dart +++ b/lib/src/timeline.dart @@ -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( diff --git a/lib/src/utils/uri_extension.dart b/lib/src/utils/uri_extension.dart index a668ec9a..3028d9d9 100644 --- a/lib/src/utils/uri_extension.dart +++ b/lib/src/utils/uri_extension.dart @@ -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(), diff --git a/pubspec.yaml b/pubspec.yaml index 1d19844a..b43aefa0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 diff --git a/test/client_test.dart b/test/client_test.dart index 53b922b3..cdccfb98 100644 --- a/test/client_test.dart +++ b/test/client_test.dart @@ -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); diff --git a/test/commands_test.dart b/test/commands_test.dart index 30ae47f2..10d7f103 100644 --- a/test/commands_test.dart +++ b/test/commands_test.dart @@ -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'}); }); diff --git a/test/device_keys_list_test.dart b/test/device_keys_list_test.dart index 13d24f59..80ac1638 100644 --- a/test/device_keys_list_test.dart +++ b/test/device_keys_list_test.dart @@ -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'); diff --git a/test/encryption/cross_signing_test.dart b/test/encryption/cross_signing_test.dart index 260dff98..0ceb1e73 100644 --- a/test/encryption/cross_signing_test.dart +++ b/test/encryption/cross_signing_test.dart @@ -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( diff --git a/test/encryption/key_manager_test.dart b/test/encryption/key_manager_test.dart index 5d9b9a26..260e6677 100644 --- a/test/encryption/key_manager_test.dart +++ b/test/encryption/key_manager_test.dart @@ -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', diff --git a/test/encryption/key_request_test.dart b/test/encryption/key_request_test.dart index 01d02657..5bb53769 100644 --- a/test/encryption/key_request_test.dart +++ b/test/encryption/key_request_test.dart @@ -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(); diff --git a/test/encryption/olm_manager_test.dart b/test/encryption/olm_manager_test.dart index 40ebc08c..0a222e5d 100644 --- a/test/encryption/olm_manager_test.dart +++ b/test/encryption/olm_manager_test.dart @@ -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); }); diff --git a/test/encryption/online_key_backup_test.dart b/test/encryption/online_key_backup_test.dart index 48f03efe..8f8c7945 100644 --- a/test/encryption/online_key_backup_test.dart +++ b/test/encryption/online_key_backup_test.dart @@ -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); diff --git a/test/encryption/ssss_test.dart b/test/encryption/ssss_test.dart index 093f8ca4..301ddf0b 100644 --- a/test/encryption/ssss_test.dart +++ b/test/encryption/ssss_test.dart @@ -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); }); diff --git a/test/event_test.dart b/test/event_test.dart index 7fd81c2a..dae4c86e 100644 --- a/test/event_test.dart +++ b/test/event_test.dart @@ -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'), diff --git a/test/fake_matrix_api.dart b/test/fake_matrix_api.dart index fbb713e3..47d4aa72 100644 --- a/test/fake_matrix_api.dart +++ b/test/fake_matrix_api.dart @@ -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¬_membership=leave': + '/client/v3/rooms/!localpart%3Aserver.abc/members?at=1234&membership=join¬_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, }, diff --git a/test/mxc_uri_extension_test.dart b/test/mxc_uri_extension_test.dart index a1d485a4..b2248a35 100644 --- a/test/mxc_uri_extension_test.dart +++ b/test/mxc_uri_extension_test.dart @@ -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'); }); }); }