forked from matrix-org/complement
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sytest.list
655 lines (654 loc) · 58.7 KB
/
sytest.list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
# Extracted from matrix-org/sytest#da1c9e22
# With `grep -E "^\s*(test|multi_test) \"" -R . | grep ".pl:" | docker run --rm -i -e LC_ALL=C ubuntu:18.04 sort`
./tests/10apidoc/01register.pl: test "POST $ep_name admin with shared secret",
./tests/10apidoc/01register.pl: test "POST $ep_name with shared secret disallows symbols",
./tests/10apidoc/01register.pl: test "POST $ep_name with shared secret downcases capitals",
./tests/10apidoc/01register.pl: test "POST $ep_name with shared secret",
./tests/10apidoc/01register.pl: test "POST /register allows registration of usernames with '$chr'",
./tests/10apidoc/01register.pl: test "POST /register rejects registration of usernames with '$q'",
./tests/10apidoc/01register.pl:test "GET /register yields a set of flows",
./tests/10apidoc/01register.pl:test "POST /register can create a user",
./tests/10apidoc/01register.pl:test "POST /register downcases capitals in usernames",
./tests/10apidoc/01register.pl:test "POST /register returns the same device_id as that in the request",
./tests/10apidoc/01request-encoding.pl:test "POST rejects invalid utf-8 in JSON",
./tests/10apidoc/02login.pl:test "GET /login yields a set of flows",
./tests/10apidoc/02login.pl:test "POST /login as non-existing user is rejected",
./tests/10apidoc/02login.pl:test "POST /login can log in as a user with just the local part of the id",
./tests/10apidoc/02login.pl:test "POST /login can log in as a user",
./tests/10apidoc/02login.pl:test "POST /login returns the same device_id as that in the request",
./tests/10apidoc/02login.pl:test "POST /login wrong password is rejected",
./tests/10apidoc/03events-initial.pl:test "GET /events initially",
./tests/10apidoc/03events-initial.pl:test "GET /initialSync initially",
./tests/10apidoc/04version.pl:test "Version responds 200 OK with valid structure",
./tests/10apidoc/10profile-displayname.pl:test "GET /profile/:user_id/displayname publicly accessible",
./tests/10apidoc/10profile-displayname.pl:test "PUT /profile/:user_id/displayname sets my name",
./tests/10apidoc/11profile-avatar_url.pl:test "GET /profile/:user_id/avatar_url publicly accessible",
./tests/10apidoc/11profile-avatar_url.pl:test "PUT /profile/:user_id/avatar_url sets my avatar",
./tests/10apidoc/12device_management.pl:test "DELETE /device/{deviceId} requires UI auth user to match device owner",
./tests/10apidoc/12device_management.pl:test "DELETE /device/{deviceId} with no body gives a 401",
./tests/10apidoc/12device_management.pl:test "DELETE /device/{deviceId}",
./tests/10apidoc/12device_management.pl:test "GET /device/{deviceId} gives a 404 for unknown devices",
./tests/10apidoc/12device_management.pl:test "GET /device/{deviceId}",
./tests/10apidoc/12device_management.pl:test "GET /devices",
./tests/10apidoc/12device_management.pl:test "PUT /device/{deviceId} gives a 404 for unknown devices",
./tests/10apidoc/12device_management.pl:test "PUT /device/{deviceId} updates device fields",
./tests/10apidoc/13ui-auth.pl:test "Can perform interactive authentication with SSO",
./tests/10apidoc/13ui-auth.pl:test "Interactive authentication types include SSO",
./tests/10apidoc/13ui-auth.pl:test "The operation must be consistent through an interactive authentication session",
./tests/10apidoc/13ui-auth.pl:test "The user must be consistent through an interactive authentication session with SSO",
./tests/10apidoc/20presence.pl:test "GET /presence/:user_id/status fetches initial status",
./tests/10apidoc/20presence.pl:test "PUT /presence/:user_id/status updates my presence",
./tests/10apidoc/30room-create.pl:test "Can /sync newly created room",
./tests/10apidoc/30room-create.pl:test "POST /createRoom creates a room with the given version",
./tests/10apidoc/30room-create.pl:test "POST /createRoom ignores attempts to set the room version via creation_content",
./tests/10apidoc/30room-create.pl:test "POST /createRoom makes a private room with invites",
./tests/10apidoc/30room-create.pl:test "POST /createRoom makes a private room",
./tests/10apidoc/30room-create.pl:test "POST /createRoom makes a public room",
./tests/10apidoc/30room-create.pl:test "POST /createRoom makes a room with a name",
./tests/10apidoc/30room-create.pl:test "POST /createRoom makes a room with a topic",
./tests/10apidoc/30room-create.pl:test "POST /createRoom rejects attempts to create rooms with numeric versions",
./tests/10apidoc/30room-create.pl:test "POST /createRoom rejects attempts to create rooms with unknown versions",
./tests/10apidoc/31room-state.pl:test "GET /directory/room/:room_alias yields room ID",
./tests/10apidoc/31room-state.pl:test "GET /joined_rooms lists newly-created room",
./tests/10apidoc/31room-state.pl:test "GET /publicRooms lists newly-created room",
./tests/10apidoc/31room-state.pl:test "GET /rooms/:room_id/initialSync fetches initial sync state",
./tests/10apidoc/31room-state.pl:test "GET /rooms/:room_id/joined_members fetches my membership",
./tests/10apidoc/31room-state.pl:test "GET /rooms/:room_id/state fetches entire room state",
./tests/10apidoc/31room-state.pl:test "GET /rooms/:room_id/state/m.room.member/:user_id fetches my membership",
./tests/10apidoc/31room-state.pl:test "GET /rooms/:room_id/state/m.room.member/:user_id?format=event fetches my membership event",
./tests/10apidoc/31room-state.pl:test "GET /rooms/:room_id/state/m.room.name gets name",
./tests/10apidoc/31room-state.pl:test "GET /rooms/:room_id/state/m.room.power_levels fetches powerlevels",
./tests/10apidoc/31room-state.pl:test "GET /rooms/:room_id/state/m.room.topic gets topic",
./tests/10apidoc/31room-state.pl:test "POST /createRoom with creation content",
./tests/10apidoc/31room-state.pl:test "POST /rooms/:room_id/state/m.room.name sets name",
./tests/10apidoc/31room-state.pl:test "POST /rooms/:room_id/state/m.room.topic sets topic",
./tests/10apidoc/32room-alias.pl:test "GET /rooms/:room_id/aliases lists aliases",
./tests/10apidoc/32room-alias.pl:test "PUT /directory/room/:room_alias creates alias",
./tests/10apidoc/33room-members.pl:test "POST /join/:room_alias can join a room with custom content",
./tests/10apidoc/33room-members.pl:test "POST /join/:room_alias can join a room",
./tests/10apidoc/33room-members.pl:test "POST /join/:room_id can join a room with custom content",
./tests/10apidoc/33room-members.pl:test "POST /join/:room_id can join a room",
./tests/10apidoc/33room-members.pl:test "POST /rooms/:room_id/ban can ban a user",
./tests/10apidoc/33room-members.pl:test "POST /rooms/:room_id/invite can send an invite",
./tests/10apidoc/33room-members.pl:test "POST /rooms/:room_id/join can join a room",
./tests/10apidoc/33room-members.pl:test "POST /rooms/:room_id/leave can leave a room",
./tests/10apidoc/34room-messages.pl:test "GET /rooms/:room_id/messages lazy loads members correctly",
./tests/10apidoc/34room-messages.pl:test "GET /rooms/:room_id/messages returns a message",
./tests/10apidoc/34room-messages.pl:test "POST /rooms/:room_id/send/:event_type sends a message",
./tests/10apidoc/34room-messages.pl:test "PUT /rooms/:room_id/send/:event_type/:txn_id deduplicates the same txn id",
./tests/10apidoc/34room-messages.pl:test "PUT /rooms/:room_id/send/:event_type/:txn_id sends a message",
./tests/10apidoc/35room-typing.pl:test "PUT /rooms/:room_id/typing/:user_id sets typing notification",
./tests/10apidoc/36room-levels.pl:test "Both GET and PUT work",
./tests/10apidoc/36room-levels.pl:test "GET /rooms/:room_id/state/m.room.power_levels can fetch levels",
./tests/10apidoc/36room-levels.pl:test "PUT /rooms/:room_id/state/m.room.power_levels can set levels",
./tests/10apidoc/36room-levels.pl:test "PUT power_levels should not explode if the old power levels were empty",
./tests/10apidoc/37room-receipts.pl:test "POST /rooms/:room_id/receipt can create receipts",
./tests/10apidoc/38room-read-marker.pl:test "POST /rooms/:room_id/read_markers can create read marker",
./tests/10apidoc/40content.pl:test "GET /media/v3/download can fetch the value again",
./tests/10apidoc/40content.pl:test "POST /media/v3/upload can create an upload",
./tests/10apidoc/45server-capabilities.pl:test "GET /capabilities is present and well formed for registered user",
./tests/10apidoc/45server-capabilities.pl:test "GET /v3/capabilities is not public",
./tests/11register.pl:multi_test "Register with a recaptcha",
./tests/11register.pl:test "Can register using an email address",
./tests/11register.pl:test "registration accepts non-ascii passwords",
./tests/11register.pl:test "registration is idempotent, with username specified",
./tests/11register.pl:test "registration is idempotent, without username specified",
./tests/11register.pl:test "registration remembers parameters",
./tests/11register.pl:test "registration with inhibit_login inhibits login",
./tests/12login/01threepid-and-password.pl:test "Can login with 3pid and password using m.login.password",
./tests/12login/02cas.pl:test "/login/cas/redirect redirects if the old m.login.cas login type is listed",
./tests/12login/02cas.pl:test "Can login with new user via CAS",
./tests/12login/02cas.pl:test "login types include SSO",
./tests/13logout.pl:test "Can logout all devices",
./tests/13logout.pl:test "Can logout current device",
./tests/13logout.pl:test "Request to logout with invalid an access token is rejected",
./tests/13logout.pl:test "Request to logout without an access token is rejected",
./tests/14account/01change-password.pl:test "After changing password, a different session no longer works by default",
./tests/14account/01change-password.pl:test "After changing password, can log in with new password",
./tests/14account/01change-password.pl:test "After changing password, can't log in with old password",
./tests/14account/01change-password.pl:test "After changing password, different sessions can optionally be kept",
./tests/14account/01change-password.pl:test "After changing password, existing session still works",
./tests/14account/01change-password.pl:test "Pushers created with a different access token are deleted on password change",
./tests/14account/01change-password.pl:test "Pushers created with a the same access token are not deleted on password change",
./tests/14account/02deactivate.pl:test "After deactivating account, can't log in with an email",
./tests/14account/02deactivate.pl:test "After deactivating account, can't log in with password",
./tests/14account/02deactivate.pl:test "Can deactivate account",
./tests/14account/02deactivate.pl:test "Can't deactivate account with wrong password",
./tests/21presence-events.pl:test "Friends presence changes reports events",
./tests/21presence-events.pl:test "Presence change reports an event to myself",
./tests/21presence-events.pl:test "initialSync sees my presence status",
./tests/30rooms/01state.pl:test "Global initialSync with limit=0 gives no messages",
./tests/30rooms/01state.pl:test "Global initialSync",
./tests/30rooms/01state.pl:test "Joining room twice is idempotent",
./tests/30rooms/01state.pl:test "Room creation reports m.room.create to myself",
./tests/30rooms/01state.pl:test "Room creation reports m.room.member to myself",
./tests/30rooms/01state.pl:test "Room initialSync with limit=0 gives no messages",
./tests/30rooms/01state.pl:test "Room initialSync",
./tests/30rooms/01state.pl:test "Setting room topic reports m.room.topic to myself",
./tests/30rooms/01state.pl:test "Setting state twice is idempotent",
./tests/30rooms/02members-local.pl:test "All room members see all room members' presence in global initialSync",
./tests/30rooms/02members-local.pl:test "Existing members see new members' join events",
./tests/30rooms/02members-local.pl:test "Existing members see new members' presence",
./tests/30rooms/02members-local.pl:test "New room members see existing users' presence in room initialSync",
./tests/30rooms/02members-local.pl:test "New room members see their own join event",
./tests/30rooms/03members-remote.pl:test "Existing members see new member's presence",
./tests/30rooms/03members-remote.pl:test "Existing members see new members' join events",
./tests/30rooms/03members-remote.pl:test "New room members see existing members' presence in room initialSync",
./tests/30rooms/03members-remote.pl:test "New room members see first user's profile information in global initialSync",
./tests/30rooms/03members-remote.pl:test "New room members see first user's profile information in per-room initialSync",
./tests/30rooms/03members-remote.pl:test "New room members see their own join event",
./tests/30rooms/03members-remote.pl:test "Remote users can join room by alias",
./tests/30rooms/03members-remote.pl:test "Remote users may not join unfederated rooms",
./tests/30rooms/04messages.pl:test "Ephemeral messages received from clients are correctly expired",
./tests/30rooms/04messages.pl:test "Fetching eventstream a second time doesn't yield the message again",
./tests/30rooms/04messages.pl:test "Local non-members don't see posted message events",
./tests/30rooms/04messages.pl:test "Local room members can get room messages",
./tests/30rooms/04messages.pl:test "Local room members see posted message events",
./tests/30rooms/04messages.pl:test "Message history can be paginated over federation",
./tests/30rooms/04messages.pl:test "Message history can be paginated",
./tests/30rooms/04messages.pl:test "Remote room members also see posted message events",
./tests/30rooms/04messages.pl:test "Remote room members can get room messages",
./tests/30rooms/05aliases.pl:multi_test "Canonical alias can be set",
./tests/30rooms/05aliases.pl:multi_test "Canonical alias can include alt_aliases",
./tests/30rooms/05aliases.pl:test "Alias creators can delete alias with no ops",
./tests/30rooms/05aliases.pl:test "Alias creators can delete canonical alias with no ops",
./tests/30rooms/05aliases.pl:test "Can delete canonical alias",
./tests/30rooms/05aliases.pl:test "Deleting a non-existent alias should return a 404",
./tests/30rooms/05aliases.pl:test "Only room members can list aliases of a room",
./tests/30rooms/05aliases.pl:test "Regular users can add and delete aliases in the default room configuration",
./tests/30rooms/05aliases.pl:test "Regular users can add and delete aliases when m.room.aliases is restricted",
./tests/30rooms/05aliases.pl:test "Remote room alias queries can handle Unicode",
./tests/30rooms/05aliases.pl:test "Room aliases can contain Unicode",
./tests/30rooms/05aliases.pl:test "Users can't delete other's aliases",
./tests/30rooms/05aliases.pl:test "Users with sufficient power-level can delete other's aliases",
./tests/30rooms/06invite.pl:multi_test "Can invite users to invite-only rooms",
./tests/30rooms/06invite.pl:multi_test "Test that we can be reinvited to a room we created",
./tests/30rooms/06invite.pl:test "Invited user can reject invite for empty room",
./tests/30rooms/06invite.pl:test "Invited user can reject invite over federation for empty room",
./tests/30rooms/06invite.pl:test "Invited user can reject invite over federation several times",
./tests/30rooms/06invite.pl:test "Invited user can reject invite over federation",
./tests/30rooms/06invite.pl:test "Invited user can reject invite",
./tests/30rooms/06invite.pl:test "Invited user can reject local invite after originator leaves",
./tests/30rooms/06invite.pl:test "Invited user can see room metadata",
./tests/30rooms/06invite.pl:test "Remote invited user can see room metadata",
./tests/30rooms/06invite.pl:test "Uninvited users cannot join the room",
./tests/30rooms/06invite.pl:test "Users cannot invite a user that is already in the room",
./tests/30rooms/06invite.pl:test "Users cannot invite themselves to a room",
./tests/30rooms/07ban.pl:test "Banned user is kicked and may not rejoin until unbanned",
./tests/30rooms/07ban.pl:test "Remote banned user is kicked and may not rejoin until unbanned",
./tests/30rooms/08levels.pl: multi_test "Users cannot set $levelname powerlevel higher than their own",
./tests/30rooms/08levels.pl:multi_test "Users cannot set notifications powerlevel higher than their own",
./tests/30rooms/08levels.pl:test "Unprivileged users can set m.room.topic if it only needs level 0",
./tests/30rooms/09eventstream.pl:multi_test "Check that event streams started after a client joined a room work (SYT-1)",
./tests/30rooms/09eventstream.pl:test "Event stream catches up fully after many messages",
./tests/30rooms/10redactions.pl:test "PUT /redact disallows redaction of event in different room",
./tests/30rooms/10redactions.pl:test "PUT /rooms/:room_id/redact/:event_id/:txn_id as original message sender redacts message",
./tests/30rooms/10redactions.pl:test "PUT /rooms/:room_id/redact/:event_id/:txn_id as power user redacts message",
./tests/30rooms/10redactions.pl:test "PUT /rooms/:room_id/redact/:event_id/:txn_id as random user does not redact message",
./tests/30rooms/10redactions.pl:test "PUT /rooms/:room_id/redact/:event_id/:txn_id is idempotent",
./tests/30rooms/10redactions.pl:test "Redaction of a redaction redacts the redaction reason",
./tests/30rooms/11leaving.pl:test "A departed room is still included in /initialSync (SPEC-216)",
./tests/30rooms/11leaving.pl:test "Can get 'm.room.name' state for a departed room (SPEC-216)",
./tests/30rooms/11leaving.pl:test "Can get rooms/{roomId}/initialSync for a departed room (SPEC-216)",
./tests/30rooms/11leaving.pl:test "Can get rooms/{roomId}/members for a departed room (SPEC-216)",
./tests/30rooms/11leaving.pl:test "Can get rooms/{roomId}/messages for a departed room (SPEC-216)",
./tests/30rooms/11leaving.pl:test "Can get rooms/{roomId}/state for a departed room (SPEC-216)",
./tests/30rooms/11leaving.pl:test "Getting messages going forward is limited for a departed room (SPEC-216)",
./tests/30rooms/12thirdpartyinvite.pl:test "3pid invite join valid signature but revoked keys are rejected",
./tests/30rooms/12thirdpartyinvite.pl:test "3pid invite join valid signature but unreachable ID server are rejected",
./tests/30rooms/12thirdpartyinvite.pl:test "3pid invite join with wrong but valid signature are rejected",
./tests/30rooms/12thirdpartyinvite.pl:test "Can accept third party invite with /join",
./tests/30rooms/12thirdpartyinvite.pl:test "Can accept unbound 3pid invite after inviter leaves",
./tests/30rooms/12thirdpartyinvite.pl:test "Can invite existing 3pid in createRoom",
./tests/30rooms/12thirdpartyinvite.pl:test "Can invite existing 3pid with no ops into a private room",
./tests/30rooms/12thirdpartyinvite.pl:test "Can invite existing 3pid",
./tests/30rooms/12thirdpartyinvite.pl:test "Can invite unbound 3pid over federation with no ops into a private room",
./tests/30rooms/12thirdpartyinvite.pl:test "Can invite unbound 3pid over federation with users from both servers",
./tests/30rooms/12thirdpartyinvite.pl:test "Can invite unbound 3pid over federation",
./tests/30rooms/12thirdpartyinvite.pl:test "Can invite unbound 3pid with no ops into a private room",
./tests/30rooms/12thirdpartyinvite.pl:test "Can invite unbound 3pid",
./tests/30rooms/13guestaccess.pl:test "GET /publicRooms includes avatar URLs",
./tests/30rooms/13guestaccess.pl:test "GET /publicRooms lists rooms",
./tests/30rooms/13guestaccess.pl:test "Guest user calling /events doesn't tightloop",
./tests/30rooms/13guestaccess.pl:test "Guest user can set display names",
./tests/30rooms/13guestaccess.pl:test "Guest user can upgrade to fully featured user",
./tests/30rooms/13guestaccess.pl:test "Guest user cannot call /events globally",
./tests/30rooms/13guestaccess.pl:test "Guest user cannot upgrade other users",
./tests/30rooms/13guestaccess.pl:test "Guest users are kicked from guest_access rooms on revocation of guest_access over federation",
./tests/30rooms/13guestaccess.pl:test "Guest users are kicked from guest_access rooms on revocation of guest_access",
./tests/30rooms/13guestaccess.pl:test "Guest users can accept invites to private rooms over federation",
./tests/30rooms/13guestaccess.pl:test "Guest users can join guest_access rooms",
./tests/30rooms/13guestaccess.pl:test "Guest users can send messages to guest_access rooms if joined",
./tests/30rooms/13guestaccess.pl:test "Guest users denied access over federation if guest access prohibited",
./tests/30rooms/14override-per-room.pl:test "Room members can join a room with an overridden displayname",
./tests/30rooms/14override-per-room.pl:test "Room members can override their displayname on a room-specific basis",
./tests/30rooms/15kick.pl:test "Users cannot kick users from a room they are not in",
./tests/30rooms/15kick.pl:test "Users cannot kick users who have already left a room",
./tests/30rooms/20typing.pl:test "Typing can be explicitly stopped",
./tests/30rooms/20typing.pl:test "Typing notification sent to local room members",
./tests/30rooms/20typing.pl:test "Typing notifications also sent to remote room members",
./tests/30rooms/21receipts.pl:multi_test "Read receipts are visible to /initialSync",
./tests/30rooms/21receipts.pl:test "Read receipts are sent as events",
./tests/30rooms/21receipts.pl:test "Receipts must be m.read",
./tests/30rooms/22profile.pl: test "$datum updates affect room member events",
./tests/30rooms/30history-visibility.pl:test "Backfill works correctly with history visibility set to joined",
./tests/30rooms/30history-visibility.pl:test "Only see history_visibility changes on boundaries",
./tests/30rooms/31forget.pl:test "Can forget room you've been kicked from",
./tests/30rooms/31forget.pl:test "Can re-join room if re-invited",
./tests/30rooms/31forget.pl:test "Can't forget room you're still in",
./tests/30rooms/31forget.pl:test "Forgetting room does not show up in v2 /sync",
./tests/30rooms/31forget.pl:test "Forgotten room messages cannot be paginated",
./tests/30rooms/32erasure.pl:test "Only original members of the room can see messages from erased users",
./tests/30rooms/40joinedapis.pl:test "/joined_members return joined members",
./tests/30rooms/40joinedapis.pl:test "/joined_rooms returns only joined rooms",
./tests/30rooms/50context.pl:test "/context/ on joined room works",
./tests/30rooms/50context.pl:test "/context/ on non world readable room does not work",
./tests/30rooms/50context.pl:test "/context/ returns correct number of events",
./tests/30rooms/50context.pl:test "/context/ with lazy_load_members filter works",
./tests/30rooms/51event.pl:test "/event/ does not allow access to events before the user joined",
./tests/30rooms/51event.pl:test "/event/ on joined room works",
./tests/30rooms/51event.pl:test "/event/ on non world readable room does not work",
./tests/30rooms/52members.pl:test "Can filter rooms/{roomId}/members",
./tests/30rooms/52members.pl:test "Can get rooms/{roomId}/members at a given point",
./tests/30rooms/52members.pl:test "Can get rooms/{roomId}/members",
./tests/30rooms/60version_upgrade.pl: test "$user_type user has push rules copied to upgraded room",
./tests/30rooms/60version_upgrade.pl: test "/upgrade should preserve room visibility for $vis rooms",
./tests/30rooms/60version_upgrade.pl:test "/upgrade copies >100 power levels to the new room",
./tests/30rooms/60version_upgrade.pl:test "/upgrade copies ban events to the new room",
./tests/30rooms/60version_upgrade.pl:test "/upgrade copies important state to the new room",
./tests/30rooms/60version_upgrade.pl:test "/upgrade copies the power levels to the new room",
./tests/30rooms/60version_upgrade.pl:test "/upgrade creates a new room",
./tests/30rooms/60version_upgrade.pl:test "/upgrade is rejected if the user can't send state events",
./tests/30rooms/60version_upgrade.pl:test "/upgrade moves aliases to the new room",
./tests/30rooms/60version_upgrade.pl:test "/upgrade moves remote aliases to the new room",
./tests/30rooms/60version_upgrade.pl:test "/upgrade of a bogus room fails gracefully",
./tests/30rooms/60version_upgrade.pl:test "/upgrade preserves direct room state",
./tests/30rooms/60version_upgrade.pl:test "/upgrade preserves room federation ability",
./tests/30rooms/60version_upgrade.pl:test "/upgrade preserves the power level of the upgrading user in old and new rooms",
./tests/30rooms/60version_upgrade.pl:test "/upgrade restricts power levels in the old room when the old PLs are unusual",
./tests/30rooms/60version_upgrade.pl:test "/upgrade restricts power levels in the old room",
./tests/30rooms/60version_upgrade.pl:test "/upgrade to an unknown version is rejected",
./tests/30rooms/60version_upgrade.pl:test "Cannot send tombstone event that points to the same room",
./tests/30rooms/60version_upgrade.pl:test "Local and remote users' homeservers remove a room from their public directory on upgrade",
./tests/30rooms/70publicroomslist.pl:test "Asking for a remote rooms list, but supplying the local server's name, returns the local rooms list",
./tests/30rooms/70publicroomslist.pl:test "Can get remote public room list",
./tests/30rooms/70publicroomslist.pl:test "Can paginate public room list",
./tests/30rooms/70publicroomslist.pl:test "Can search public room list",
./tests/30rooms/70publicroomslist.pl:test "Name/topic keys are correct",
./tests/31sync/01filter.pl:test "Can create filter",
./tests/31sync/01filter.pl:test "Can download filter",
./tests/31sync/02sync.pl:test "Can sync",
./tests/31sync/03joined.pl:test "Can sync a joined room",
./tests/31sync/03joined.pl:test "Full state sync includes joined rooms",
./tests/31sync/03joined.pl:test "Get presence for newly joined members in incremental sync",
./tests/31sync/03joined.pl:test "Newly joined room has correct timeline in incremental sync",
./tests/31sync/03joined.pl:test "Newly joined room includes presence in incremental sync",
./tests/31sync/03joined.pl:test "Newly joined room is included in an incremental sync",
./tests/31sync/04timeline.pl:test "A filtered timeline reaches its limit",
./tests/31sync/04timeline.pl:test "A full_state incremental update returns only recent timeline",
./tests/31sync/04timeline.pl:test "A message sent after an initial sync appears in the timeline of an incremental sync.",
./tests/31sync/04timeline.pl:test "A next_batch token can be used in the v1 messages API",
./tests/31sync/04timeline.pl:test "A prev_batch token can be used in the v1 messages API",
./tests/31sync/04timeline.pl:test "A prev_batch token from incremental sync can be used in the v1 messages API",
./tests/31sync/04timeline.pl:test "Can sync a room with a message with a transaction id",
./tests/31sync/04timeline.pl:test "Can sync a room with a single message",
./tests/31sync/04timeline.pl:test "Syncing a new room with a large timeline limit isn't limited",
./tests/31sync/05presence.pl:test "User is offline if they set_presence=offline in their sync",
./tests/31sync/05presence.pl:test "User sees their own presence in a sync",
./tests/31sync/05presence.pl:test "User sees updates to presence from other users in the incremental sync.",
./tests/31sync/06state.pl:test "A change to displayname should appear in incremental /sync",
./tests/31sync/06state.pl:test "A change to displayname should not result in a full state sync",
./tests/31sync/06state.pl:test "A full_state incremental update returns all state",
./tests/31sync/06state.pl:test "Changes to state are included in an gapped incremental sync",
./tests/31sync/06state.pl:test "Changes to state are included in an incremental sync",
./tests/31sync/06state.pl:test "Current state appears in timeline in private history with many messages after",
./tests/31sync/06state.pl:test "Current state appears in timeline in private history with many messages before",
./tests/31sync/06state.pl:test "Current state appears in timeline in private history",
./tests/31sync/06state.pl:test "State from remote users is included in the state in the initial sync",
./tests/31sync/06state.pl:test "State from remote users is included in the timeline in an incremental sync",
./tests/31sync/06state.pl:test "State is included in the timeline in the initial sync",
./tests/31sync/06state.pl:test "When user joins a room the state is included in a gapped sync",
./tests/31sync/06state.pl:test "When user joins a room the state is included in the next sync",
./tests/31sync/06state.pl:test "When user joins and leaves a room in the same batch, the full state is still included in the next sync",
./tests/31sync/07invited.pl:test "Newly joined room is included in an incremental sync after invite",
./tests/31sync/07invited.pl:test "Rooms a user is invited to appear in an incremental sync",
./tests/31sync/07invited.pl:test "Rooms a user is invited to appear in an initial sync",
./tests/31sync/08polling.pl:test "Sync can be polled for updates",
./tests/31sync/08polling.pl:test "Sync is woken up for leaves",
./tests/31sync/09archived.pl:test "Archived rooms only contain history from before the user left",
./tests/31sync/09archived.pl:test "Left rooms appear in the leave section of full state sync",
./tests/31sync/09archived.pl:test "Left rooms appear in the leave section of sync",
./tests/31sync/09archived.pl:test "Newly left rooms appear in the leave section of gapped sync",
./tests/31sync/09archived.pl:test "Newly left rooms appear in the leave section of incremental sync",
./tests/31sync/09archived.pl:test "Previously left rooms don't appear in the leave section of sync",
./tests/31sync/09archived.pl:test "We should see our own leave event when rejecting an invite, ".
./tests/31sync/09archived.pl:test "We should see our own leave event, even if history_visibility is " .
./tests/31sync/10archived-ban.pl:test "Banned rooms appear in the leave section of sync",
./tests/31sync/10archived-ban.pl:test "Newly banned rooms appear in the leave section of incremental sync",
./tests/31sync/10archived-ban.pl:test "Newly banned rooms appear in the leave section of incremental sync",
./tests/31sync/11typing.pl:test "Typing events appear in gapped sync",
./tests/31sync/11typing.pl:test "Typing events appear in incremental sync",
./tests/31sync/11typing.pl:test "Typing events appear in initial sync",
./tests/31sync/12receipts.pl:test "New read receipts appear in incremental v2 /sync",
./tests/31sync/12receipts.pl:test "Read receipts appear in initial v2 /sync",
./tests/31sync/13filtered_sync.pl:test "Can pass a JSON filter as a query parameter",
./tests/31sync/13filtered_sync.pl:test "Can request federation format via the filter",
./tests/31sync/14read-markers.pl:test "Read markers appear in incremental v2 /sync",
./tests/31sync/14read-markers.pl:test "Read markers appear in initial v2 /sync",
./tests/31sync/14read-markers.pl:test "Read markers can be updated",
./tests/31sync/15lazy-members.pl:test "Gapped incremental syncs include all state changes",
./tests/31sync/15lazy-members.pl:test "Lazy loading parameters in the filter are strictly boolean",
./tests/31sync/15lazy-members.pl:test "Leaves are present in non-gapped incremental syncs",
./tests/31sync/15lazy-members.pl:test "Members from the gap are included in gappy incr LL sync",
./tests/31sync/15lazy-members.pl:test "Old leaves are present in gapped incremental syncs",
./tests/31sync/15lazy-members.pl:test "Old members are included in gappy incr LL sync if they start speaking",
./tests/31sync/15lazy-members.pl:test "Rejecting invite over federation doesn't break incremental /sync",
./tests/31sync/15lazy-members.pl:test "The only membership state included in a gapped incremental sync is for senders in the timeline",
./tests/31sync/15lazy-members.pl:test "The only membership state included in an incremental sync is for senders in the timeline",
./tests/31sync/15lazy-members.pl:test "The only membership state included in an initial sync is for all the senders in the timeline",
./tests/31sync/15lazy-members.pl:test "We do send redundant membership state across incremental syncs if asked",
./tests/31sync/15lazy-members.pl:test "We don't send redundant membership state across incremental syncs by default",
./tests/31sync/16room-summary.pl:test "Named room comes with just joined member count summary",
./tests/31sync/16room-summary.pl:test "Room summary counts change when membership changes",
./tests/31sync/16room-summary.pl:test "Room summary only has 5 heroes",
./tests/31sync/16room-summary.pl:test "Unnamed room comes with a name summary",
./tests/31sync/17peeking.pl: test "We can't peek into rooms with $visibility history_visibility",
./tests/31sync/17peeking.pl:test "Local users can peek by room alias",
./tests/31sync/17peeking.pl:test "Local users can peek into world_readable rooms by room ID",
./tests/31sync/17peeking.pl:test "Peeked rooms only turn up in the sync for the device who peeked them",
./tests/32room-versions.pl: test "$user_type user can join room with version $version",
./tests/32room-versions.pl: test "User can invite $user_type user to room with version $version",
./tests/32room-versions.pl: multi_test "User can create and send/receive messages in a room with version $version",
./tests/32room-versions.pl: test "Can receive redactions from regular users over federation in room version $version",
./tests/32room-versions.pl: test "Can reject invites over federation for rooms with version $version",
./tests/32room-versions.pl: test "Remote user can backfill in a room with version $version",
./tests/40presence.pl:test "Newly created users see their own presence in /initialSync (SYT-34)",
./tests/40presence.pl:test "Presence can be set from sync",
./tests/40presence.pl:test "Presence changes are also reported to remote room members",
./tests/40presence.pl:test "Presence changes are reported to local room members",
./tests/40presence.pl:test "Presence changes to UNAVAILABLE are reported to local room members",
./tests/40presence.pl:test "Presence changes to UNAVAILABLE are reported to remote room members",
./tests/41end-to-end-keys/01-upload-key.pl:test "Can query device keys using POST",
./tests/41end-to-end-keys/01-upload-key.pl:test "Can query specific device keys using POST",
./tests/41end-to-end-keys/01-upload-key.pl:test "Can upload device keys",
./tests/41end-to-end-keys/01-upload-key.pl:test "Rejects invalid device keys",
./tests/41end-to-end-keys/01-upload-key.pl:test "Should reject keys claiming to belong to a different user",
./tests/41end-to-end-keys/01-upload-key.pl:test "query for user with no keys returns empty key dict",
./tests/41end-to-end-keys/03-one-time-keys.pl:multi_test "Can claim one time key using POST",
./tests/41end-to-end-keys/04-query-key-federation.pl:multi_test "Can query remote device keys using POST",
./tests/41end-to-end-keys/05-one-time-key-federation.pl:multi_test "Can claim remote one time key using POST",
./tests/41end-to-end-keys/06-device-lists.pl:test "Can query remote device keys using POST after notification",
./tests/41end-to-end-keys/06-device-lists.pl:test "Device deletion propagates over federation",
./tests/41end-to-end-keys/06-device-lists.pl:test "Get left notifs for other users in sync and /keys/changes when user leaves",
./tests/41end-to-end-keys/06-device-lists.pl:test "Get left notifs in sync and /keys/changes when other user leaves",
./tests/41end-to-end-keys/06-device-lists.pl:test "If remote user leaves room we no longer receive device updates",
./tests/41end-to-end-keys/06-device-lists.pl:test "If remote user leaves room, changes device and rejoins we see update in /keys/changes",
./tests/41end-to-end-keys/06-device-lists.pl:test "If remote user leaves room, changes device and rejoins we see update in sync",
./tests/41end-to-end-keys/06-device-lists.pl:test "If user leaves room, remote user changes device and rejoins we see update in /sync and /keys/changes",
./tests/41end-to-end-keys/06-device-lists.pl:test "Local delete device changes appear in v2 /sync",
./tests/41end-to-end-keys/06-device-lists.pl:test "Local device key changes appear in /keys/changes",
./tests/41end-to-end-keys/06-device-lists.pl:test "Local device key changes appear in v2 /sync",
./tests/41end-to-end-keys/06-device-lists.pl:test "Local new device changes appear in v2 /sync",
./tests/41end-to-end-keys/06-device-lists.pl:test "Local update device changes appear in v2 /sync",
./tests/41end-to-end-keys/06-device-lists.pl:test "New users appear in /keys/changes",
./tests/41end-to-end-keys/06-device-lists.pl:test "Users receive device_list updates for their own devices",
./tests/41end-to-end-keys/07-backup.pl:test "Can backup keys",
./tests/41end-to-end-keys/07-backup.pl:test "Can create backup version",
./tests/41end-to-end-keys/07-backup.pl:test "Can create more than 10 backup versions",
./tests/41end-to-end-keys/07-backup.pl:test "Can delete backup",
./tests/41end-to-end-keys/07-backup.pl:test "Can update backup version",
./tests/41end-to-end-keys/07-backup.pl:test "Can update keys with better versions",
./tests/41end-to-end-keys/07-backup.pl:test "Deleted & recreated backups are empty",
./tests/41end-to-end-keys/07-backup.pl:test "Responds correctly when backup is empty",
./tests/41end-to-end-keys/07-backup.pl:test "Will not back up to an old backup version",
./tests/41end-to-end-keys/07-backup.pl:test "Will not update keys with worse versions",
./tests/41end-to-end-keys/08-cross-signing.pl:test "Can upload self-signing keys",
./tests/41end-to-end-keys/08-cross-signing.pl:test "Changing master key notifies local users",
./tests/41end-to-end-keys/08-cross-signing.pl:test "Changing user-signing key notifies local users",
./tests/41end-to-end-keys/08-cross-signing.pl:test "Fails to upload self-signing key without master key",
./tests/41end-to-end-keys/08-cross-signing.pl:test "Fails to upload self-signing keys with no auth",
./tests/41end-to-end-keys/08-cross-signing.pl:test "can fetch self-signing keys over federation",
./tests/41end-to-end-keys/08-cross-signing.pl:test "uploading self-signing key notifies over federation",
./tests/41end-to-end-keys/08-cross-signing.pl:test "uploading signed devices gets propagated over federation",
./tests/42tags.pl: test "$user_type user has tags copied to the new room",
./tests/42tags.pl:test "Can add tag",
./tests/42tags.pl:test "Can list tags for a room",
./tests/42tags.pl:test "Can remove tag",
./tests/42tags.pl:test "Deleted tags appear in an incremental v2 /sync",
./tests/42tags.pl:test "Newly updated tags appear in an incremental v2 /sync",
./tests/42tags.pl:test "Tags appear in an initial v2 /sync",
./tests/42tags.pl:test "Tags appear in the v1 /events stream",
./tests/42tags.pl:test "Tags appear in the v1 /initialSync",
./tests/42tags.pl:test "Tags appear in the v1 room initial sync",
./tests/44account_data.pl:test "Account data appears in v1 /events stream",
./tests/44account_data.pl:test "Can add account data to room",
./tests/44account_data.pl:test "Can add account data",
./tests/44account_data.pl:test "Can get account data without syncing",
./tests/44account_data.pl:test "Can get room account data without syncing",
./tests/44account_data.pl:test "Latest account data appears in v2 /sync",
./tests/44account_data.pl:test "Latest account data comes down in /initialSync",
./tests/44account_data.pl:test "Latest account data comes down in room initialSync",
./tests/44account_data.pl:test "New account data appears in incremental v2 /sync",
./tests/44account_data.pl:test "Room account data appears in v1 /events stream",
./tests/45openid.pl:test "Can generate a openid access_token that can be exchanged for information about a user",
./tests/45openid.pl:test "Invalid openid access tokens are rejected",
./tests/45openid.pl:test "Requests to userinfo without access tokens are rejected",
./tests/46direct/01directmessage.pl:test "Can recv a device message using /sync",
./tests/46direct/01directmessage.pl:test "Can send a message directly to a device using PUT /sendToDevice",
./tests/46direct/01directmessage.pl:test "Can send a to-device message to two users which both receive it using /sync",
./tests/46direct/02reliability.pl:test "Can recv device messages until they are acknowledged",
./tests/46direct/02reliability.pl:test "Device messages with the same txn_id are deduplicated",
./tests/46direct/03polling.pl:test "Device messages wake up /sync",
./tests/46direct/04federation.pl:test "Can recv device messages over federation",
./tests/46direct/04federation.pl:test "Device messages over federation wake up /sync",
./tests/46direct/05wildcard.pl:test "Can send messages with a wildcard device id to two devices",
./tests/46direct/05wildcard.pl:test "Can send messages with a wildcard device id",
./tests/46direct/05wildcard.pl:test "Wildcard device messages over federation wake up /sync",
./tests/46direct/05wildcard.pl:test "Wildcard device messages wake up /sync",
./tests/48admin.pl:multi_test "Shutdown room",
./tests/48admin.pl:test "/purge_history by ts",
./tests/48admin.pl:test "/purge_history",
./tests/48admin.pl:test "/whois",
./tests/48admin.pl:test "Can backfill purged history",
./tests/49ignore.pl:test "Ignore invite in full sync",
./tests/49ignore.pl:test "Ignore invite in incremental sync",
./tests/49ignore.pl:test "Ignore user in existing room",
./tests/50federation/00prepare.pl: test "foo",
./tests/50federation/00prepare.pl: test "foo",
./tests/50federation/00prepare.pl:test "Checking local federation server",
./tests/50federation/01keys.pl: test "Federation key API can act as a notary server via a $method request",
./tests/50federation/01keys.pl:test "Federation key API allows unsigned requests for keys",
./tests/50federation/01keys.pl:test "Key notary server must not overwrite a valid key with a spurious result from the origin server",
./tests/50federation/01keys.pl:test "Key notary server should return an expired key if it can't find any others",
./tests/50federation/02server-names.pl:test "Non-numeric ports in server names are rejected",
./tests/50federation/10query-profile.pl:test "Inbound federation can query profile data",
./tests/50federation/10query-profile.pl:test "Outbound federation can query profile data",
./tests/50federation/11query-directory.pl:test "Inbound federation can query room alias directory",
./tests/50federation/11query-directory.pl:test "Outbound federation can query room alias directory",
./tests/50federation/30room-join.pl: test "Inbound federation can receive $versionprefix /send_join",
./tests/50federation/30room-join.pl: test "Outbound federation can query $versionprefix /send_join",
./tests/50federation/30room-join.pl:test "A pair of servers can establish a join in a v2 room",
./tests/50federation/30room-join.pl:test "Event with an invalid signature in the send_join response should not cause room join to fail",
./tests/50federation/30room-join.pl:test "Inbound /make_join rejects attempts to join rooms where all users have left",
./tests/50federation/30room-join.pl:test "Inbound /v1/make_join rejects remote attempts to join local users to rooms",
./tests/50federation/30room-join.pl:test "Inbound /v1/send_join rejects incorrectly-signed joins",
./tests/50federation/30room-join.pl:test "Inbound /v1/send_join rejects joins from other servers",
./tests/50federation/30room-join.pl:test "Inbound federation accepts attempts to join v2 rooms from servers with support",
./tests/50federation/30room-join.pl:test "Inbound federation rejects attempts to join v1 rooms from servers without v1 support",
./tests/50federation/30room-join.pl:test "Inbound federation rejects attempts to join v2 rooms from servers lacking version support",
./tests/50federation/30room-join.pl:test "Inbound federation rejects attempts to join v2 rooms from servers only supporting v1",
./tests/50federation/30room-join.pl:test "Inbound federation rejects remote attempts to kick local users to rooms",
./tests/50federation/30room-join.pl:test "Inbound: send_join rejects invalid JSON for room version 6",
./tests/50federation/30room-join.pl:test "Membership event with an invalid displayname in the send_join response should not cause room join to fail",
./tests/50federation/30room-join.pl:test "Outbound federation correctly handles unsupported room versions",
./tests/50federation/30room-join.pl:test "Outbound federation passes make_join failures through to the client",
./tests/50federation/30room-join.pl:test "Outbound federation rejects m.room.create events with an unknown room version",
./tests/50federation/30room-join.pl:test "Outbound federation rejects send_join responses with no m.room.create event",
./tests/50federation/31room-send.pl:test "Ephemeral messages received from servers are correctly expired",
./tests/50federation/31room-send.pl:test "Events whose auth_events are in the wrong room do not mess up the room state",
./tests/50federation/31room-send.pl:test "Inbound federation can receive events",
./tests/50federation/31room-send.pl:test "Inbound federation can receive redacted events",
./tests/50federation/31room-send.pl:test "Outbound federation can send events",
./tests/50federation/32room-getevent.pl:test "Inbound federation can return events",
./tests/50federation/32room-getevent.pl:test "Inbound federation redacts events from erased users",
./tests/50federation/33room-get-missing-events.pl: test "Inbound federation can return missing events for $vis visibility",
./tests/50federation/33room-get-missing-events.pl:test "Outbound federation can request missing events",
./tests/50federation/33room-get-missing-events.pl:test "Outbound federation will ignore a missing event with bad JSON for room version 6",
./tests/50federation/33room-get-missing-events.pl:test "outliers whose auth_events are in a different room are correctly rejected",
./tests/50federation/34room-backfill.pl:test "Backfill checks the events requested belong to the room",
./tests/50federation/34room-backfill.pl:test "Backfilled events whose prev_events are in a different room do not allow cross-room back-pagination",
./tests/50federation/34room-backfill.pl:test "Inbound federation can backfill events",
./tests/50federation/34room-backfill.pl:test "Outbound federation can backfill events",
./tests/50federation/34room-backfill.pl:test "Outbound federation rejects backfill containing invalid JSON for events in room version 6",
./tests/50federation/35room-invite.pl: test "Inbound federation can receive invite and reject when remote "
./tests/50federation/35room-invite.pl: test "Outbound federation can send invites via $prefix API",
./tests/50federation/35room-invite.pl:test "Inbound /v1/send_leave rejects leaves from other servers",
./tests/50federation/35room-invite.pl:test "Inbound federation can receive invite rejections",
./tests/50federation/35room-invite.pl:test "Inbound federation can receive invites via v1 API",
./tests/50federation/35room-invite.pl:test "Inbound federation can receive invites via v2 API",
./tests/50federation/35room-invite.pl:test "Inbound federation rejects incorrectly-signed invite rejections",
./tests/50federation/35room-invite.pl:test "Inbound federation rejects invite rejections which include invalid JSON for room version 6",
./tests/50federation/35room-invite.pl:test "Inbound federation rejects invites which are not signed by the sender",
./tests/50federation/35room-invite.pl:test "Inbound federation rejects invites which include invalid JSON for room version 6",
./tests/50federation/35room-invite.pl:test "Outbound federation rejects invite response which include invalid JSON for room version 6",
./tests/50federation/36state.pl: test "/$endpoint returns M_NOT_FOUND for a rejected $type event",
./tests/50federation/36state.pl: test "/$endpoint returns M_NOT_FOUND for an outlier",
./tests/50federation/36state.pl: test "Room state after a rejected $type event is the same as before",
./tests/50federation/36state.pl:test "Federation handles empty auth_events in state_ids sanely",
./tests/50federation/36state.pl:test "Federation rejects inbound events where the prev_events cannot be found",
./tests/50federation/36state.pl:test "Getting state IDs checks the events requested belong to the room",
./tests/50federation/36state.pl:test "Getting state checks the events requested belong to the room",
./tests/50federation/36state.pl:test "Inbound federation can get state for a room",
./tests/50federation/36state.pl:test "Inbound federation can get state_ids for a room",
./tests/50federation/36state.pl:test "Inbound federation of state requires event_id as a mandatory paramater",
./tests/50federation/36state.pl:test "Inbound federation of state_ids requires event_id as a mandatory paramater",
./tests/50federation/36state.pl:test "Outbound federation requests missing prev_events and then asks for /state_ids and resolves the state",
./tests/50federation/36state.pl:test "Should not be able to take over the room by pretending there is no PL event",
./tests/50federation/37public-rooms.pl:test "Inbound federation can get public room list",
./tests/50federation/38receipts.pl:test "Inbound federation rejects receipts from wrong remote",
./tests/50federation/38receipts.pl:test "Outbound federation sends receipts",
./tests/50federation/39redactions.pl:test "A pair of events which redact each other should be ignored",
./tests/50federation/39redactions.pl:test "An event which redacts an event in a different room should be ignored",
./tests/50federation/39redactions.pl:test "An event which redacts itself should be ignored",
./tests/50federation/39redactions.pl:test "Inbound federation ignores redactions from invalid servers room > v3",
./tests/50federation/40devicelists.pl:test "Device list doesn't change if remote server is down",
./tests/50federation/40devicelists.pl:test "If a device list update goes missing, the server resyncs on the next one",
./tests/50federation/40devicelists.pl:test "Local device key changes get to remote servers with correct prev_id",
./tests/50federation/40devicelists.pl:test "Local device key changes get to remote servers",
./tests/50federation/40devicelists.pl:test "Server correctly handles incoming m.device_list_update",
./tests/50federation/40devicelists.pl:test "Server correctly resyncs when client query keys and there is no remote cache",
./tests/50federation/40devicelists.pl:test "Server correctly resyncs when server leaves and rejoins a room",
./tests/50federation/40publicroomlist.pl:test "Federation publicRoom Name/topic keys are correct",
./tests/50federation/41power-levels.pl:test "Remote servers cannot set power levels in rooms without existing powerlevels",
./tests/50federation/41power-levels.pl:test "Remote servers should reject attempts by non-creators to set the power levels",
./tests/50federation/43typing.pl:test "Inbound federation rejects typing notifications from wrong remote",
./tests/50federation/44presence.pl:multi_test "New federated private chats get full presence information (SYN-115)",
./tests/50federation/50no-deextrem-outliers.pl:test "Forward extremities remain so even after the next events are populated as outliers",
./tests/50federation/50server-acl-endpoints.pl: test "Banned servers cannot $desc",
./tests/50federation/51transactions.pl:test "Server correctly handles transactions that break edu limits",
./tests/50federation/51transactions.pl:test "Server rejects invalid JSON in a version 6 room",
./tests/50federation/52soft-fail.pl:test "Inbound federation accepts a second soft-failed event",
./tests/50federation/52soft-fail.pl:test "Inbound federation correctly handles soft failed events as extremities",
./tests/50federation/52soft-fail.pl:test "Inbound federation correctly soft fails events",
./tests/51media/01unicode.pl:test "Alternative server names do not cause a routing loop",
./tests/51media/01unicode.pl:test "Can download specifying a different Unicode file name",
./tests/51media/01unicode.pl:test "Can download with Unicode file name locally",
./tests/51media/01unicode.pl:test "Can download with Unicode file name over federation",
./tests/51media/01unicode.pl:test "Can upload with Unicode file name",
./tests/51media/02nofilename.pl:test "Can download without a file name locally",
./tests/51media/02nofilename.pl:test "Can download without a file name over federation",
./tests/51media/02nofilename.pl:test "Can upload without a file name",
./tests/51media/03ascii.pl: test "Can download file '$filename'",
./tests/51media/03ascii.pl:test "Can download specifying a different ASCII file name",
./tests/51media/03ascii.pl:test "Can fetch images in room",
./tests/51media/03ascii.pl:test "Can send image in room message",
./tests/51media/03ascii.pl:test "Can upload with ASCII file name",
./tests/51media/10thumbnail.pl:test "POSTed media can be thumbnailed",
./tests/51media/10thumbnail.pl:test "Remote media can be thumbnailed",
./tests/51media/20urlpreview.pl:multi_test "Test URL preview",
./tests/51media/30config.pl:test "Can read configuration endpoint",
./tests/51media/48admin-quarantine.pl:multi_test "Can quarantine media in rooms",
./tests/52user-directory/01public.pl: multi_test "Users appear/disappear from directory when $type are changed",
./tests/52user-directory/01public.pl:multi_test "User joining then leaving public room appears and dissappears from directory",
./tests/52user-directory/01public.pl:multi_test "Users stay in directory when join_rules are changed but history_visibility is world_readable",
./tests/52user-directory/01public.pl:test "User appears in user directory",
./tests/52user-directory/01public.pl:test "User directory correctly update on display name change",
./tests/52user-directory/01public.pl:test "User in private room doesn't appear in user directory",
./tests/52user-directory/01public.pl:test "User in remote room doesn't appear in user directory after server left room",
./tests/52user-directory/02private.pl:test "User in dir while user still shares private rooms",
./tests/52user-directory/02private.pl:test "User in shared private room does appear in user directory until leave",
./tests/52user-directory/02private.pl:test "User in shared private room does appear in user directory",
./tests/54identity.pl:test "3PIDs are unbound after account deactivation",
./tests/54identity.pl:test "Can bind 3PID via home server",
./tests/54identity.pl:test "Can bind and unbind 3PID via /unbind by specifying the identity server",
./tests/54identity.pl:test "Can bind and unbind 3PID via /unbind without specifying the identity server",
./tests/54identity.pl:test "Can bind and unbind 3PID via homeserver",
./tests/54identity.pl:test "Can unbind 3PID via homeserver when bound out of band",
./tests/60app-services/01as-create.pl:test "AS can create a user with an underscore",
./tests/60app-services/01as-create.pl:test "AS can create a user with inhibit_login",
./tests/60app-services/01as-create.pl:test "AS can create a user",
./tests/60app-services/01as-create.pl:test "AS can make room aliases",
./tests/60app-services/01as-create.pl:test "AS cannot create users outside its own namespace",
./tests/60app-services/01as-create.pl:test "Regular users cannot create room aliases within the AS namespace",
./tests/60app-services/01as-create.pl:test "Regular users cannot register within the AS namespace",
./tests/60app-services/02ghost.pl:multi_test "AS-ghosted users can use rooms themselves",
./tests/60app-services/02ghost.pl:multi_test "AS-ghosted users can use rooms via AS",
./tests/60app-services/02ghost.pl:test "AS can set avatar for ghosted users",
./tests/60app-services/02ghost.pl:test "AS can set displayname for ghosted users",
./tests/60app-services/02ghost.pl:test "AS can't set displayname for random users",
./tests/60app-services/02ghost.pl:test "Ghost user must register before joining room",
./tests/60app-services/03passive.pl:multi_test "Accesing an AS-hosted room alias asks the AS server",
./tests/60app-services/03passive.pl:test "Events in rooms with AS-hosted room aliases are sent to AS server",
./tests/60app-services/03passive.pl:test "Inviting an AS-hosted user asks the AS server",
./tests/60app-services/04asuser.pl:test "AS user (not ghost) can join room without registering",
./tests/60app-services/04asuser.pl:test "AS user (not ghost) can join room without registering, with user_id query param",
./tests/60app-services/05lookup3pe.pl:test "HS can provide query metadata on a single protocol",
./tests/60app-services/05lookup3pe.pl:test "HS provides query metadata",
./tests/60app-services/05lookup3pe.pl:test "HS will proxy request for 3PL mapping",
./tests/60app-services/05lookup3pe.pl:test "HS will proxy request for 3PU mapping",
./tests/60app-services/06publicroomlist.pl:test "AS and main public room lists are separate",
./tests/60app-services/06publicroomlist.pl:test "AS can publish rooms in their own list",
./tests/60app-services/07deactivate.pl:test "AS can deactivate a user",
./tests/61push/01message-pushed.pl:multi_test "Test that a message is pushed",
./tests/61push/01message-pushed.pl:test "Don't get pushed for rooms you've muted",
./tests/61push/01message-pushed.pl:test "Invites are pushed",
./tests/61push/01message-pushed.pl:test "Rejected events are not pushed",
./tests/61push/01message-pushed.pl:test "Rooms with canonical alias are correctly named in pushed",
./tests/61push/01message-pushed.pl:test "Rooms with many users are correctly pushed",
./tests/61push/01message-pushed.pl:test "Rooms with names are correctly named in pushes",
./tests/61push/02add_rules.pl: test "Can add global push rule for $kind",
./tests/61push/02add_rules.pl:test "Adding the same push rule twice is idempotent",
./tests/61push/02add_rules.pl:test "Can add global push rule after an existing rule",
./tests/61push/02add_rules.pl:test "Can add global push rule before an existing rule",
./tests/61push/02add_rules.pl:test "Can delete a push rule",
./tests/61push/02add_rules.pl:test "Can disable a push rule",
./tests/61push/02add_rules.pl:test "New rules appear before old rules by default",
./tests/61push/03_unread_count.pl: test "Messages that $action from another user increment $counter",
./tests/61push/03_unread_count.pl:test "Messages that highlight from another user increment unread highlight count",
./tests/61push/05_set_actions.pl:test "Can change the actions of a user specified rule",
./tests/61push/05_set_actions.pl:test "Can change the actions of default rules",
./tests/61push/05_set_actions.pl:test "Changing the actions of an unknown default rule fails with 404",
./tests/61push/05_set_actions.pl:test "Changing the actions of an unknown rule fails with 404",
./tests/61push/06_get_pusher.pl:test "Can fetch a user's pushers",
./tests/61push/07_set_enabled.pl:test "Can enable/disable default rules",
./tests/61push/07_set_enabled.pl:test "Enabling an unknown default rule fails with 404",
./tests/61push/08_rejected_pushers.pl:multi_test "Test that rejected pushers are removed.",
./tests/61push/09_notifications_api.pl:test "Notifications can be viewed with GET /notifications",
./tests/61push/80torture.pl: test "Trying to add push rule with $name fails with 400",
./tests/61push/80torture.pl: test "Trying to get push rules with $name fails with 400",
./tests/61push/80torture.pl: test "Trying to get push rules with $name fails with 404",
./tests/80torture/03events.pl:test "Event size limits",
./tests/80torture/03events.pl:test "GET /events with negative 'limit'",
./tests/80torture/03events.pl:test "GET /events with non-numeric 'limit'",
./tests/80torture/03events.pl:test "GET /events with non-numeric 'timeout'",
./tests/80torture/03events.pl:test "GET /initialSync with non-numeric 'limit'",
./tests/80torture/10filters.pl:test "Check creating invalid filters returns 4xx",
./tests/80torture/20json.pl:test "Invalid JSON floats",
./tests/80torture/20json.pl:test "Invalid JSON integers",
./tests/80torture/20json.pl:test "Invalid JSON special values",
./tests/90jira/SYN-205.pl:multi_test "Rooms can be created with an initial invite list (SYN-205)",
./tests/90jira/SYN-328.pl:multi_test "Typing notifications don't leak",
./tests/90jira/SYN-343.pl:multi_test "Non-present room members cannot ban others",
./tests/90jira/SYN-390.pl:multi_test "Getting push rules doesn't corrupt the cache SYN-390",
./tests/90jira/SYN-516.pl:multi_test "Multiple calls to /sync should not cause 500 errors",
./tests/90jira/SYN-627.pl:test "Events come down the correct room",