forked from matrix-org/complement
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sytest.list
694 lines (694 loc) · 61.6 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
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
./tests/43search.pl:test "Can search for an event by body",
./tests/43search.pl:test "Can get context around search results",
./tests/43search.pl:test "Can back-paginate search results",
./tests/43search.pl:test "Search works across an upgraded room and its predecessor",
./tests/43search.pl: test "Search results with $ordering_type ordering do not include redacted events",
./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/54identity.pl:test "Can bind 3PID via home 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/54identity.pl:test "3PIDs are unbound after account deactivation",
./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/49ignore.pl:test "Ignore user in existing room",
./tests/49ignore.pl:test "Ignore invite in full sync",
./tests/49ignore.pl:test "Ignore invite in incremental sync",
./tests/14account/02deactivate.pl:test "Can deactivate account",
./tests/14account/02deactivate.pl:test "Can't deactivate account with wrong password",
./tests/14account/02deactivate.pl:test "After deactivating account, can't log in with password",
./tests/14account/02deactivate.pl:test "After deactivating account, can't log in with an email",
./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, can log in with new password",
./tests/14account/01change-password.pl:test "After changing password, existing session still works",
./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, different sessions can optionally be kept",
./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/31sync/16room-summary.pl:test "Unnamed room comes with a name summary",
./tests/31sync/16room-summary.pl:test "Named room comes with just joined member count summary",
./tests/31sync/16room-summary.pl:test "Room summary only has 5 heroes",
./tests/31sync/16room-summary.pl:test "Room summary counts change when membership changes",
./tests/31sync/01filter.pl:test "Can create filter",
./tests/31sync/01filter.pl:test "Can download filter",
./tests/31sync/05presence.pl:test "User sees their own presence in a sync",
./tests/31sync/05presence.pl:test "User is offline if they set_presence=offline in their sync",
./tests/31sync/05presence.pl:test "User sees updates to presence from other users in the incremental sync.",
./tests/31sync/11typing.pl:test "Typing events appear in initial sync",
./tests/31sync/11typing.pl:test "Typing events appear in incremental sync",
./tests/31sync/11typing.pl:test "Typing events appear in gapped sync",
./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/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/02sync.pl:test "Can 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/12receipts.pl:test "Read receipts appear in initial v2 /sync",
./tests/31sync/12receipts.pl:test "New read receipts appear in incremental v2 /sync",
./tests/31sync/04timeline.pl:test "Can sync a room with a single message",
./tests/31sync/04timeline.pl:test "Can sync a room with a message with a transaction id",
./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 filtered timeline reaches its limit",
./tests/31sync/04timeline.pl:test "Syncing a new room with a large timeline limit isn't limited",
./tests/31sync/04timeline.pl:test "A full_state incremental update returns only recent timeline",
./tests/31sync/04timeline.pl:test "A prev_batch token can be used in the v1 messages API",
./tests/31sync/04timeline.pl:test "A next_batch token can be used in the v1 messages API",
./tests/31sync/06state.pl:test "State is included in the timeline in the initial sync",
./tests/31sync/06state.pl:test "State from remote users is included in the state in the initial sync",
./tests/31sync/06state.pl:test "Changes to state are included in an incremental sync",
./tests/31sync/06state.pl:test "Changes to state are included in an gapped incremental sync",
./tests/31sync/06state.pl:test "State from remote users is included in the timeline in an incremental sync",
./tests/31sync/06state.pl:test "A full_state incremental update returns all state",
./tests/31sync/06state.pl:test "When user joins a room the state is included in the next sync",
./tests/31sync/06state.pl:test "A change to displayname should not result in a full state sync",
./tests/31sync/06state.pl:test "A change to displayname should appear in incremental /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 and leaves a room in the same batch, the full state is still included in the next sync",
./tests/31sync/06state.pl:test "Current state appears in timeline in private history",
./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 with many messages after",
./tests/31sync/15lazy-members.pl:test "Lazy loading parameters in the filter are strictly boolean",
./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 "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 a gapped incremental sync is for senders in the timeline",
./tests/31sync/15lazy-members.pl:test "Gapped incremental syncs include all state changes",
./tests/31sync/15lazy-members.pl:test "Old leaves are present in gapped incremental syncs",
./tests/31sync/15lazy-members.pl:test "Leaves are present in non-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 "Members from the gap are included in gappy incr LL sync",
./tests/31sync/15lazy-members.pl:test "We don't send redundant membership state across incremental syncs by default",
./tests/31sync/15lazy-members.pl:test "We do send redundant membership state across incremental syncs if asked",
./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 "Newly joined room is included in an 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 "Get presence for newly joined members in incremental 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/07invited.pl:test "Rooms a user is invited to appear in an initial sync",
./tests/31sync/07invited.pl:test "Rooms a user is invited to appear in an incremental sync",
./tests/31sync/07invited.pl:test "Newly joined room is included in an incremental sync after invite",
./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 incremental sync",
./tests/31sync/09archived.pl:test "We should see our own leave event, even if history_visibility is " .
./tests/31sync/09archived.pl:test "We should see our own leave event when rejecting an invite, ".
./tests/31sync/09archived.pl:test "Newly left rooms appear in the leave section of gapped sync",
./tests/31sync/09archived.pl:test "Previously left rooms don't appear in the leave section of sync",
./tests/31sync/09archived.pl:test "Left rooms appear in the leave section of full state sync",
./tests/31sync/09archived.pl:test "Archived rooms only contain history from before the user left",
./tests/90jira/SYN-442.pl:multi_test "Test that we can be reinvited to a room we created",
./tests/90jira/SYN-328.pl:multi_test "Typing notifications don't leak",
./tests/90jira/SYN-516.pl:multi_test "Multiple calls to /sync should not cause 500 errors",
./tests/90jira/SYN-390.pl:multi_test "Getting push rules doesn't corrupt the cache SYN-390",
./tests/90jira/SYN-343.pl:multi_test "Non-present room members cannot ban others",
./tests/90jira/SYN-115.pl:multi_test "New federated private chats get full presence information (SYN-115)",
./tests/90jira/SYN-202.pl:multi_test "Left room members do not cause problems for presence",
./tests/90jira/SYN-205.pl:multi_test "Rooms can be created with an initial invite list (SYN-205)",
./tests/90jira/SYN-627.pl:test "Events come down the correct room",
./tests/11register.pl:multi_test "Register with a recaptcha",
./tests/11register.pl:test "registration is idempotent, without username specified",
./tests/11register.pl:test "registration is idempotent, with username specified",
./tests/11register.pl:test "registration remembers parameters",
./tests/11register.pl:test "registration accepts non-ascii passwords",
./tests/11register.pl:test "registration with inhibit_login inhibits login",
./tests/11register.pl:test "User signups are forbidden from starting with '_'",
./tests/11register.pl:test "Can register using an email address",
./tests/51media/02nofilename.pl:test "Can upload without a 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/20urlpreview.pl:multi_test "Test URL preview",
./tests/51media/30config.pl:test "Can read configuration endpoint",
./tests/51media/03ascii.pl:test "Can upload with ASCII 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 send image in room message",
./tests/51media/03ascii.pl:test "Can fetch images in room",
./tests/51media/01unicode.pl:test "Can upload with 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 "Alternative server names do not cause a routing loop",
./tests/51media/01unicode.pl:test "Can download specifying a different Unicode file name",
./tests/51media/48admin-quarantine.pl:multi_test "Can quarantine media in rooms",
./tests/51media/10thumbnail.pl:test "POSTed media can be thumbnailed",
./tests/51media/10thumbnail.pl:test "Remote media can be thumbnailed",
./tests/50federation/11query-directory.pl:test "Outbound federation can query room alias directory",
./tests/50federation/11query-directory.pl:test "Inbound federation can query room alias directory",
./tests/50federation/38receipts.pl:test "Outbound federation sends receipts",
./tests/50federation/38receipts.pl:test "Inbound federation rejects receipts from wrong remote",
./tests/50federation/50no-deextrem-outliers.pl:test "Forward extremities remain so even after the next events are populated as outliers",
./tests/50federation/52soft-fail.pl:test "Inbound federation correctly soft fails events",
./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/02server-names.pl:test "Non-numeric ports in server names are rejected",
./tests/50federation/00prepare.pl:test "Checking local federation server",
./tests/50federation/00prepare.pl: test "foo",
./tests/50federation/33room-get-missing-events.pl:test "Outbound federation can request missing events",
./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 "outliers whose auth_events are in a different room are correctly rejected",
./tests/50federation/33room-get-missing-events.pl:test "Outbound federation will ignore a missing event with bad JSON for room version 6",
./tests/50federation/50server-acl-endpoints.pl: test "Banned servers cannot $desc",
./tests/50federation/10query-profile.pl:test "Outbound federation can query profile data",
./tests/50federation/10query-profile.pl:test "Inbound federation can query profile data",
./tests/50federation/31room-send.pl:test "Outbound federation can send events",
./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 "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/34room-backfill.pl:test "Outbound federation can backfill events",
./tests/50federation/34room-backfill.pl:test "Inbound federation can backfill events",
./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 "Outbound federation rejects backfill containing invalid JSON for events in room version 6",
./tests/50federation/01keys.pl:test "Federation key API allows unsigned requests for keys",
./tests/50federation/01keys.pl: test "Federation key API can act as a notary server via a $method request",
./tests/50federation/01keys.pl:test "Key notary server should return an expired key if it can't find any others",
./tests/50federation/01keys.pl:test "Key notary server must not overwrite a valid key with a spurious result from the origin server",
./tests/50federation/40publicroomlist.pl:test "Name/topic keys are correct",
./tests/50federation/36state.pl:test "Inbound federation can get state 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 can get state_ids for a room",
./tests/50federation/36state.pl:test "Inbound federation of state_ids requires event_id as a mandatory paramater",
./tests/50federation/36state.pl:test "Federation rejects inbound events where the prev_events cannot be found",
./tests/50federation/36state.pl: test "Room state at a rejected $type event is the same as its predecessor",
./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 "Federation handles empty auth_events in state_ids sanely",
./tests/50federation/36state.pl:test "Getting state checks the events requested belong to the room",
./tests/50federation/36state.pl:test "Getting state IDs checks the events requested belong to the room",
./tests/50federation/36state.pl:test "Should not be able to take over the room by pretending there is no PL event",
./tests/50federation/43typing.pl:test "Inbound federation rejects typing notifications from wrong remote",
./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/40devicelists.pl:test "Local device key changes get to remote servers with correct prev_id",
./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 "When a room is upgraded to E2E, device lists caches should be flushed"
./tests/50federation/40devicelists.pl:# test "Device lists caches should be flushed when you re-encounter a user"
./tests/50federation/40devicelists.pl:# test "Device lists get refreshed when you encounter an unrecognised device" # for https://github.com/matrix-org/synapse/issues/5095#issuecomment-501512352
./tests/50federation/40devicelists.pl:# test "If you send >20 device lists updates in a row, they don't get lost?" # for https://github.com/matrix-org/synapse/issues/5153
./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/37public-rooms.pl:test "Inbound federation can get public room list",
./tests/50federation/35room-invite.pl:1 || test "Outbound federation rejects /invite responses which are not correctly signed",
./tests/50federation/35room-invite.pl: test "Outbound federation can send invites via $prefix API",
./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 can receive invite and reject when remote "
./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 can receive invite rejections",
./tests/50federation/35room-invite.pl:test "Inbound federation rejects incorrectly-signed invite rejections",
./tests/50federation/35room-invite.pl:test "Inbound /v1/send_leave rejects leaves from other servers",
./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/35room-invite.pl:test "Inbound federation rejects invite rejections which include invalid JSON for room version 6",
./tests/50federation/30room-join.pl: test "Outbound federation can query $versionprefix /send_join",
./tests/50federation/30room-join.pl:test "Outbound federation passes make_join failures through to the client",
./tests/50federation/30room-join.pl: test "Inbound federation can receive $versionprefix /send_join",
./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 rejects remote attempts to kick local users to rooms",
./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 accepts attempts to join v2 rooms from servers with support",
./tests/50federation/30room-join.pl:test "Outbound federation correctly handles unsupported room versions",
./tests/50federation/30room-join.pl:test "A pair of servers can establish a join in a v2 room",
./tests/50federation/30room-join.pl:test "Outbound federation rejects send_join responses with no m.room.create event",
./tests/50federation/30room-join.pl:test "Outbound federation rejects m.room.create events with an unknown room version",
./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: send_join rejects invalid JSON for room version 6",
./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/32room-getevent.pl:test "Inbound federation can return events",
./tests/50federation/32room-getevent.pl:test "Inbound federation redacts events from erased users",
./tests/50federation/39redactions.pl:test "Inbound federation ignores redactions from invalid servers room > v3",
./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 "A pair of events which redact each other should be ignored",
./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 delete 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 "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 "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 remote user leaves room we no longer receive device updates",
./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 "New users appear 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 /keys/changes",
./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 "Get left notifs for other users in sync and /keys/changes when user leaves",
./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 "Users receive device_list updates for their own devices",
./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/07-backup.pl:test "Can create backup version",
./tests/41end-to-end-keys/07-backup.pl:test "Can update backup version",
./tests/41end-to-end-keys/07-backup.pl:test "Responds correctly when backup is empty",
./tests/41end-to-end-keys/07-backup.pl:test "Can backup keys",
./tests/41end-to-end-keys/07-backup.pl:test "Can update keys with better versions",
./tests/41end-to-end-keys/07-backup.pl:test "Will not update keys with worse versions",
./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 "Can delete backup",
./tests/41end-to-end-keys/07-backup.pl:test "Deleted & recreated backups are empty",
./tests/41end-to-end-keys/07-backup.pl:test "Can create more than 10 backup versions",
./tests/41end-to-end-keys/04-query-key-federation.pl:multi_test "Can query remote device keys using POST",
./tests/41end-to-end-keys/03-one-time-keys.pl:multi_test "Can claim one time key 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 "Should reject keys claiming to belong to a different user",
./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 "query for user with no keys returns empty key dict",
./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 "Fails to upload self-signing keys with no auth",
./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 "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 "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 "Can add tag",
./tests/42tags.pl:test "Can remove tag",
./tests/42tags.pl:test "Can list tags for a room",
./tests/42tags.pl:test "Tags appear in the v1 /events stream",
./tests/42tags.pl:test "Tags appear in the v1 /initalSync",
./tests/42tags.pl:test "Tags appear in the v1 room initial sync",
./tests/42tags.pl:test "Tags appear in an initial v2 /sync",
./tests/42tags.pl:test "Newly updated tags appear in an incremental v2 /sync",
./tests/42tags.pl:test "Deleted tags appear in an incremental v2 /sync",
./tests/42tags.pl: test "$user_type user has tags copied to the new room",
./tests/13logout.pl:test "Can logout current device",
./tests/13logout.pl:test "Can logout all devices",
./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/32room-versions.pl: multi_test "User can create and send/receive messages in a room with version $version",
./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: test "Remote user can backfill in a room with version $version",
./tests/32room-versions.pl: test "Can reject invites over federation for rooms with version $version",
./tests/32room-versions.pl: test "Can receive redactions from regular users over federation in room version $version",
./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/01directmessage.pl:test "Can send a message directly to a device using PUT /sendToDevice",
./tests/46direct/01directmessage.pl:test "Can recv a device message using /sync",
./tests/46direct/01directmessage.pl:test "Can send a to-device message to two users which both receive it using /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",
./tests/46direct/05wildcard.pl:test "Can send messages with a wildcard device id to two devices",
./tests/46direct/05wildcard.pl:test "Wildcard device messages wake up /sync",
./tests/46direct/05wildcard.pl:test "Wildcard device messages over federation wake up /sync",
./tests/46direct/03polling.pl:test "Device messages wake up /sync",
./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/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/13guestaccess.pl:test "Guest user cannot call /events globally",
./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 user calling /events doesn't tightloop",
./tests/30rooms/13guestaccess.pl:test "Guest users are kicked from guest_access rooms on revocation of guest_access",
./tests/30rooms/13guestaccess.pl:test "Guest user can set display names",
./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 user can upgrade to fully featured user",
./tests/30rooms/13guestaccess.pl:test "Guest user cannot upgrade other users",
./tests/30rooms/13guestaccess.pl:test "GET /publicRooms lists rooms",
./tests/30rooms/13guestaccess.pl:test "GET /publicRooms includes avatar URLs",
./tests/30rooms/13guestaccess.pl:test "Guest users can accept invites to private rooms over federation",
./tests/30rooms/13guestaccess.pl:test "Guest users denied access over federation if guest access prohibited",
./tests/30rooms/30history-visibility.pl:test "Only see history_visibility changes on boundaries",
./tests/30rooms/30history-visibility.pl:test "Backfill works correctly with history visibility set to joined",
./tests/30rooms/04messages.pl:test "Local room members see posted message events",
./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 "Remote room members also see posted message events",
./tests/30rooms/04messages.pl:test "Remote room members can get room messages",
./tests/30rooms/04messages.pl:test "Message history can be paginated",
./tests/30rooms/04messages.pl:test "Message history can be paginated over federation",
./tests/30rooms/04messages.pl:test "Ephemeral messages received from clients are correctly expired",
./tests/30rooms/03members-remote.pl:test "Remote users can join room by alias",
./tests/30rooms/03members-remote.pl:test "New room members see their own join event",
./tests/30rooms/03members-remote.pl:test "New room members see existing members' presence in room initialSync",
./tests/30rooms/03members-remote.pl:test "Existing members see new members' join events",
./tests/30rooms/03members-remote.pl:test "Existing members see new member's presence",
./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 "Remote users may not join unfederated rooms",
./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 "Setting room topic reports m.room.topic to myself",
./tests/30rooms/01state.pl:test "Global initialSync",
./tests/30rooms/01state.pl:test "Global initialSync with limit=0 gives no messages",
./tests/30rooms/01state.pl:test "Room initialSync",
./tests/30rooms/01state.pl:test "Room initialSync with limit=0 gives no messages",
./tests/30rooms/01state.pl:test "Setting state twice is idempotent",
./tests/30rooms/01state.pl:test "Joining room twice is idempotent",
./tests/30rooms/22profile.pl: test "$datum updates affect room member events",
./tests/30rooms/52members.pl:test "Can get rooms/{roomId}/members",
./tests/30rooms/52members.pl:test "Can get rooms/{roomId}/members at a given point",
./tests/30rooms/52members.pl:test "Can filter rooms/{roomId}/members",
./tests/30rooms/40joinedapis.pl:test "/joined_rooms returns only joined rooms",
./tests/30rooms/40joinedapis.pl:test "/joined_members return joined members",
./tests/30rooms/31forget.pl:test "Forgotten room messages cannot be paginated",
./tests/30rooms/31forget.pl:test "Forgetting room does not show up in v2 /sync",
./tests/30rooms/31forget.pl:test "Can forget room you've been kicked from",
./tests/30rooms/31forget.pl:test "Can't forget room you're still in",
./tests/30rooms/31forget.pl:test "Can re-join room if re-invited",
./tests/30rooms/70publicroomslist.pl:test "Name/topic keys are correct",
./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 "Asking for a remote rooms list, but supplying the local server's name, returns the local rooms list",
./tests/30rooms/32erasure.pl:test "Only original members of the room can see messages from erased users",
./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/ on joined room works",
./tests/30rooms/51event.pl:test "/event/ on non world readable room does not work",
./tests/30rooms/51event.pl:test "/event/ does not allow access to events before the user joined",
./tests/30rooms/06invite.pl:multi_test "Can invite users to invite-only rooms",
./tests/30rooms/06invite.pl:test "Uninvited users cannot join the room",
./tests/30rooms/06invite.pl:test "Invited user can reject invite",
./tests/30rooms/06invite.pl:test "Invited user can reject invite over federation",
./tests/30rooms/06invite.pl:test "Invited user can reject invite over federation several times",
./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 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 "Users cannot invite themselves to a room",
./tests/30rooms/06invite.pl:test "Users cannot invite a user that is already in the room",
./tests/30rooms/10redactions.pl:test "POST /rooms/:room_id/redact/:event_id as power user redacts message",
./tests/30rooms/10redactions.pl:test "POST /rooms/:room_id/redact/:event_id as original message sender redacts message",
./tests/30rooms/10redactions.pl:test "POST /rooms/:room_id/redact/:event_id as random user does not redact message",
./tests/30rooms/10redactions.pl:test "POST /redact disallows redaction of event in different room",
./tests/30rooms/10redactions.pl:test "Redaction of a redaction redacts the redaction reason",
./tests/30rooms/02members-local.pl:test "New room members see their own join event",
./tests/30rooms/02members-local.pl:test "New room members see existing users' presence in room 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 "All room members see all room members' presence in global initialSync",
./tests/30rooms/05aliases.pl:test "Room aliases can contain Unicode",
./tests/30rooms/05aliases.pl:test "Remote room alias queries can handle Unicode",
./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 "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 "Deleting a non-existent alias should return a 404",
./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/05aliases.pl:test "Can delete canonical alias",
./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 "Only room members can list aliases of a room",
./tests/30rooms/12thirdpartyinvite.pl:test "Can invite existing 3pid",
./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 in createRoom",
./tests/30rooms/12thirdpartyinvite.pl:test "Can invite unbound 3pid",
./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 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 accept unbound 3pid invite after inviter leaves",
./tests/30rooms/12thirdpartyinvite.pl:test "Can accept third party invite with /join",
./tests/30rooms/12thirdpartyinvite.pl:test "3pid invite join with wrong but valid signature are rejected",
./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/60version_upgrade.pl:test "/upgrade creates a new 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 the power levels to the new room",
./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 copies important state to the new room",
./tests/30rooms/60version_upgrade.pl:test "/upgrade copies ban events to the new room",
./tests/30rooms/60version_upgrade.pl: test "$user_type user has push rules copied to upgraded room",
./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 preserves direct room state",
./tests/30rooms/60version_upgrade.pl:test "/upgrade preserves room federation ability",
./tests/30rooms/60version_upgrade.pl:test "/upgrade restricts power levels in the old room",
./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 to an unknown version is rejected",
./tests/30rooms/60version_upgrade.pl:test "/upgrade is rejected if the user can't send state events",
./tests/30rooms/60version_upgrade.pl:test "/upgrade of a bogus room fails gracefully",
./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/14override-per-room.pl:test "Room members can override their displayname on a room-specific basis",
./tests/30rooms/14override-per-room.pl:test "Room members can join a room with an overridden displayname",
./tests/30rooms/08levels.pl:test "Unprivileged users can set m.room.topic if it only needs level 0",
./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/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/20typing.pl:test "Typing can be explicitly stopped",
./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/11leaving.pl:test "A departed room is still included in /initialSync (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}/state 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 'm.room.name' 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/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/12login/02cas.pl:test "login types include SSO",
./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/01threepid-and-password.pl:test "Can login with 3pid and password using m.login.password",
./tests/52user-directory/01public.pl:test "User appears in user directory",
./tests/52user-directory/01public.pl:test "User in private room doesn't appear in user directory",
./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 appear/disappear from directory when $type are changed",
./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 in remote room doesn't appear in user directory after server left room",
./tests/52user-directory/01public.pl:test "User directory correctly update on display name change",
./tests/52user-directory/02private.pl:test "User in shared private room does appear in user directory",
./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 dir while user still shares private rooms",
./tests/40presence.pl:test "Presence changes are reported to local room members",
./tests/40presence.pl:test "Presence changes are also reported to remote 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/40presence.pl:test "Newly created users see their own presence in /initialSync (SYT-34)",
./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/02ghost.pl:multi_test "AS-ghosted users can use rooms via AS",
./tests/60app-services/02ghost.pl:multi_test "AS-ghosted users can use rooms themselves",
./tests/60app-services/02ghost.pl:test "Ghost user must register before joining room",
./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/01as-create.pl:test "AS can create a user",
./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 cannot create users outside its own namespace",
./tests/60app-services/01as-create.pl:test "Regular users cannot register within the AS namespace",
./tests/60app-services/01as-create.pl:test "AS can make room aliases",
./tests/60app-services/01as-create.pl:test "Regular users cannot create room aliases within the AS namespace",
./tests/60app-services/05lookup3pe.pl:test "HS provides query metadata",
./tests/60app-services/05lookup3pe.pl:test "HS can provide query metadata on a single protocol",
./tests/60app-services/05lookup3pe.pl:test "HS will proxy request for 3PU mapping",
./tests/60app-services/05lookup3pe.pl:test "HS will proxy request for 3PL mapping",
./tests/60app-services/03passive.pl:test "Inviting an AS-hosted user asks the AS server",
./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/07deactivate.pl:test "AS can deactivate a user",
./tests/60app-services/06publicroomlist.pl:test "AS can publish rooms in their own list",
./tests/60app-services/06publicroomlist.pl:test "AS and main public room lists are separate",
./tests/80torture/20json.pl:test "Invalid JSON integers",
./tests/80torture/20json.pl:test "Invalid JSON floats",
./tests/80torture/20json.pl:test "Invalid JSON special values",
./tests/80torture/03events.pl:test "GET /initialSync with non-numeric 'limit'",
./tests/80torture/03events.pl:test "GET /events with non-numeric 'limit'",
./tests/80torture/03events.pl:test "GET /events with negative 'limit'",
./tests/80torture/03events.pl:test "GET /events with non-numeric 'timeout'",
./tests/80torture/03events.pl:test "Event size limits",
./tests/80torture/10filters.pl:test "Check creating invalid filters returns 4xx",
./tests/61push/02add_rules.pl: test "Can add global push rule for $kind",
./tests/61push/02add_rules.pl:test "New rules appear before old rules by default",
./tests/61push/02add_rules.pl:test "Can add global push rule before an existing rule",
./tests/61push/02add_rules.pl:test "Can add global push rule after 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 "Adding the same push rule twice is idempotent",
./tests/61push/08_rejected_pushers.pl:multi_test "Test that rejected pushers are removed.",
./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/61push/01message-pushed.pl:multi_test "Test that a message is pushed",
./tests/61push/01message-pushed.pl:test "Invites are pushed",
./tests/61push/01message-pushed.pl:test "Rooms with names are correctly named in 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 "Don't get pushed for rooms you've muted",
./tests/61push/01message-pushed.pl:test "Rejected events are not pushed",
./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/09_notifications_api.pl:test "Notifications can be viewed with GET /notifications",
./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 "Can change the actions of a user specified rule",
./tests/61push/05_set_actions.pl:test "Changing the actions of an unknown rule fails with 404",
./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/06_push_rules_in_sync.pl:test "Push rules come down in an initial /sync",
./tests/61push/06_push_rules_in_sync.pl:test "Adding a push rule wakes up an incremental /sync",
./tests/61push/06_push_rules_in_sync.pl:test "Disabling a push rule wakes up an incremental /sync",
./tests/61push/06_push_rules_in_sync.pl:test "Enabling a push rule wakes up an incremental /sync",
./tests/61push/06_push_rules_in_sync.pl:test "Setting actions for a push rule wakes up an incremental /sync",
./tests/21presence-events.pl:test "initialSync sees my presence status",
./tests/21presence-events.pl:test "Presence change reports an event to myself",
./tests/21presence-events.pl:test "Friends presence changes reports events",
./tests/10apidoc/33room-members.pl:test "POST /rooms/:room_id/join can join a room",
./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",
./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_alias can join a room with custom content",
./tests/10apidoc/33room-members.pl:test "POST /rooms/:room_id/leave can leave a room",
./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/ban can ban a user",
./tests/10apidoc/38room-read-marker.pl:test "POST /rooms/:room_id/read_markers can create read marker",
./tests/10apidoc/45server-capabilities.pl:test "GET /capabilities is present and well formed for registered user",
./tests/10apidoc/45server-capabilities.pl:test "GET /r0/capabilities is not public",
./tests/10apidoc/12device_management.pl:test "GET /device/{deviceId}",
./tests/10apidoc/12device_management.pl:test "GET /device/{deviceId} gives a 404 for unknown devices",
./tests/10apidoc/12device_management.pl:test "GET /devices",
./tests/10apidoc/12device_management.pl:test "PUT /device/{deviceId} updates device fields",
./tests/10apidoc/12device_management.pl:test "PUT /device/{deviceId} gives a 404 for unknown devices",
./tests/10apidoc/12device_management.pl:test "DELETE /device/{deviceId}",
./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/02login.pl:test "GET /login yields a set of flows",
./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 can log in as a user with just the local part of the id",
./tests/10apidoc/02login.pl:test "POST /login as non-existing user is rejected",
./tests/10apidoc/02login.pl:test "POST /login wrong password is rejected",
./tests/10apidoc/01request-encoding.pl:test "POST rejects invalid utf-8 in JSON",
./tests/10apidoc/30room-create.pl:test "POST /createRoom makes a public room",
./tests/10apidoc/30room-create.pl:test "POST /createRoom makes a private room",
./tests/10apidoc/30room-create.pl:test "POST /createRoom makes a private room with invites",
./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 "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 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/30room-create.pl:test "POST /createRoom ignores attempts to set the room version via creation_content",
./tests/10apidoc/35room-typing.pl:test "PUT /rooms/:room_id/typing/:user_id sets typing notification",
./tests/10apidoc/37room-receipts.pl:test "POST /rooms/:room_id/receipt can create receipts",
./tests/10apidoc/04version.pl:test "Version responds 200 OK with valid structure",
./tests/10apidoc/13ui-auth.pl:test "Interactive authentication types include SSO",
./tests/10apidoc/13ui-auth.pl:test "Can perform interactive authentication with SSO",
./tests/10apidoc/13ui-auth.pl:test "The user must be consistent through an interactive authentication session with SSO",
./tests/10apidoc/13ui-auth.pl:test "The operation must be consistent through an interactive authentication session",
./tests/10apidoc/11profile-avatar_url.pl:test "PUT /profile/:user_id/avatar_url sets my avatar",
./tests/10apidoc/11profile-avatar_url.pl:test "GET /profile/:user_id/avatar_url publicly accessible",
./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/36room-levels.pl:test "Both GET and PUT work",
./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 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 "GET /rooms/:room_id/messages returns a message",
./tests/10apidoc/34room-messages.pl:test "GET /rooms/:room_id/messages lazy loads members correctly",
./tests/10apidoc/10profile-displayname.pl:test "PUT /profile/:user_id/displayname sets my name",
./tests/10apidoc/10profile-displayname.pl:test "GET /profile/:user_id/displayname publicly accessible",
./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.power_levels fetches powerlevels",
./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/initialSync fetches initial sync state",
./tests/10apidoc/31room-state.pl:test "GET /publicRooms lists newly-created room",
./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 "POST /rooms/:room_id/state/m.room.name sets name",
./tests/10apidoc/31room-state.pl:test "GET /rooms/:room_id/state/m.room.name gets name",
./tests/10apidoc/31room-state.pl:test "POST /rooms/:room_id/state/m.room.topic sets topic",
./tests/10apidoc/31room-state.pl:test "GET /rooms/:room_id/state/m.room.topic gets topic",
./tests/10apidoc/31room-state.pl:test "GET /rooms/:room_id/state fetches entire room state",
./tests/10apidoc/31room-state.pl:test "POST /createRoom with creation content",
./tests/10apidoc/03events-initial.pl:test "GET /events initially",
./tests/10apidoc/03events-initial.pl:test "GET /initialSync initially",
./tests/10apidoc/32room-alias.pl:test "PUT /directory/room/:room_alias creates alias",
./tests/10apidoc/32room-alias.pl:test "GET /rooms/:room_id/aliases lists aliases",
./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/40content.pl:test "POST /media/r0/upload can create an upload",
./tests/10apidoc/40content.pl:test "GET /media/r0/download can fetch the value again",
./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/01register.pl: test "POST /register rejects registration of usernames with '$q'",
./tests/10apidoc/01register.pl: test "POST $ep_name with shared secret",
./tests/10apidoc/01register.pl: test "POST $ep_name admin with shared secret",
./tests/10apidoc/01register.pl: test "POST $ep_name with shared secret downcases capitals",
./tests/10apidoc/01register.pl: test "POST $ep_name with shared secret disallows symbols",
./tests/48admin.pl:test "/whois",
./tests/48admin.pl:test "/purge_history",
./tests/48admin.pl:test "/purge_history by ts",
./tests/48admin.pl:test "Can backfill purged history",
./tests/48admin.pl:multi_test "Shutdown room",
./tests/53groups/12joinable.pl:test "Joinability comes down summary",
./tests/53groups/12joinable.pl:test "Set group joinable and join it",
./tests/53groups/12joinable.pl:test "Group is not joinable by default",
./tests/53groups/12joinable.pl:test "Group is joinable over federation",
./tests/53groups/05categories.pl:test "Add group category",
./tests/53groups/05categories.pl:test "Remove group category",
./tests/53groups/05categories.pl:test "Get group categories",
./tests/53groups/05roles.pl:test "Add group role",
./tests/53groups/05roles.pl:test "Remove group role",
./tests/53groups/05roles.pl:test "Get group roles",
./tests/53groups/06summaries.pl:test "Add room to group summary",
./tests/53groups/06summaries.pl:test "Adding room to group summary keeps room_id when fetching rooms in group",
./tests/53groups/06summaries.pl:test "Adding multiple rooms to group summary have correct order",
./tests/53groups/06summaries.pl:test "Remove room from group summary",
./tests/53groups/06summaries.pl:test "Add room to group summary with category",
./tests/53groups/06summaries.pl:test "Remove room from group summary with category",
./tests/53groups/06summaries.pl:test "Add user to group summary",
./tests/53groups/06summaries.pl:test "Adding multiple users to group summary have correct order",
./tests/53groups/06summaries.pl:test "Remove user from group summary",
./tests/53groups/06summaries.pl:test "Add user to group summary with role",
./tests/53groups/06summaries.pl:test "Remove user from group summary with role",
./tests/53groups/02read.pl: test "Get $test_name group profile",
./tests/53groups/02read.pl: test "Get $test_name group users",
./tests/53groups/02read.pl: test "Add/remove $test_name group rooms",
./tests/53groups/02read.pl: test "Get $test_name group summary",
./tests/53groups/20room-upgrade.pl:test "Room is transitioned on local and remote groups upon room upgrade",
./tests/53groups/11publicise.pl:test "Get/set local group publicity",
./tests/53groups/11publicise.pl:test "Bulk get group publicity",
./tests/53groups/01create.pl:test "Create group",
./tests/53groups/01create.pl:test "Add group rooms",
./tests/53groups/01create.pl:test "Remove group rooms",
./tests/53groups/04remote-group.pl:test "Add remote group users",
./tests/53groups/04remote-group.pl:test "Remove self from remote group",
./tests/53groups/04remote-group.pl:test "Listing invited users of a remote group when not a member returns a 403",
./tests/53groups/03local.pl:test "Add local group users",
./tests/53groups/03local.pl:test "Remove self from local group",
./tests/53groups/03local.pl:test "Remove other from local group",
./tests/53groups/10sync.pl:test "Local group invites come down sync",
./tests/53groups/10sync.pl:test "Group creator sees group in sync",
./tests/53groups/10sync.pl:test "Group creator sees group in initial sync",
./tests/44account_data.pl:test "Can add account data",
./tests/44account_data.pl:test "Can add account data to room",
./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 comes down in /initialSync",
./tests/44account_data.pl:test "Latest account data comes down in room initialSync",
./tests/44account_data.pl:test "Account data appears in v1 /events stream",
./tests/44account_data.pl:test "Room account data appears in v1 /events stream",
./tests/44account_data.pl:test "Latest account data appears in v2 /sync",
./tests/44account_data.pl:test "New account data appears in incremental v2 /sync",