matrix_sdk_test/test_json/
sync_events.rs

1//! Discrete events found in a sync response.
2
3use once_cell::sync::Lazy;
4use serde_json::{json, Value as JsonValue};
5
6use crate::DEFAULT_TEST_ROOM_ID;
7
8pub static ALIAS: Lazy<JsonValue> = Lazy::new(|| {
9    json!({
10        "content": {
11            "alias": "#tutorial:localhost"
12        },
13        "event_id": "$15139375513VdeRF:localhost",
14        "origin_server_ts": 151393755,
15        "sender": "@example:localhost",
16        "state_key": "",
17        "type": "m.room.canonical_alias",
18        "unsigned": {
19            "age": 703422
20        }
21    })
22});
23
24pub static ALIASES: Lazy<JsonValue> = Lazy::new(|| {
25    json!({
26        "content": {
27            "aliases": [
28                "#tutorial:localhost"
29            ]
30        },
31        "event_id": "$15139375516NUgtD:localhost",
32        "origin_server_ts": 151393755,
33        "sender": "@example:localhost",
34        "state_key": "localhost",
35        "type": "m.room.aliases",
36        "unsigned": {
37            "age": 703422
38        }
39    })
40});
41
42pub static CREATE: Lazy<JsonValue> = Lazy::new(|| {
43    json!({
44        "content": {
45            "creator": "@example:localhost",
46            "m.federate": true,
47            "room_version": "1"
48        },
49        "event_id": "$151957878228ekrDs:localhost",
50        "origin_server_ts": 15195787,
51        "sender": "@example:localhost",
52        "state_key": "",
53        "type": "m.room.create",
54        "unsigned": {
55          "age": 139298
56        }
57    })
58});
59
60pub static DIRECT: Lazy<JsonValue> = Lazy::new(|| {
61    json!({
62        "content": {
63            "@invited:localhost": [*DEFAULT_TEST_ROOM_ID],
64        },
65        "event_id": "$757957878228ekrDs:localhost",
66        "origin_server_ts": 17195787,
67        "sender": "@example:localhost",
68        "state_key": "",
69        "type": "m.direct",
70        "unsigned": {
71          "age": 139298
72        }
73    })
74});
75
76pub static FULLY_READ: Lazy<JsonValue> = Lazy::new(|| {
77    json!({
78        "content": {
79            "event_id": "$someplace:example.org"
80        },
81        "room_id": "!somewhere:example.org",
82        "type": "m.fully_read"
83    })
84});
85
86pub static HISTORY_VISIBILITY: Lazy<JsonValue> = Lazy::new(|| {
87    json!({
88        "content": {
89            "history_visibility": "world_readable"
90        },
91        "event_id": "$151957878235ricnD:localhost",
92        "origin_server_ts": 151957878,
93        "sender": "@example:localhost",
94        "state_key": "",
95        "type": "m.room.history_visibility",
96        "unsigned": {
97          "age": 1392989
98        }
99    })
100});
101
102pub static JOIN_RULES: Lazy<JsonValue> = Lazy::new(|| {
103    json!({
104        "content": {
105            "join_rule": "public"
106        },
107        "event_id": "$151957878231iejdB:localhost",
108        "origin_server_ts": 151957878,
109        "sender": "@example:localhost",
110        "state_key": "",
111        "type": "m.room.join_rules",
112        "unsigned": {
113          "age": 1392989
114        }
115    })
116});
117
118pub static ENCRYPTION_CONTENT: Lazy<JsonValue> = Lazy::new(|| {
119    json!({
120        "algorithm": "m.megolm.v1.aes-sha2",
121        "rotation_period_ms": 604800000,
122        "rotation_period_msgs": 100
123    })
124});
125
126pub static ENCRYPTION: Lazy<JsonValue> = Lazy::new(|| {
127    json!({
128        "content": *ENCRYPTION_CONTENT,
129        "event_id": "$143273582443PhrSn:example.org",
130        "origin_server_ts": 1432735824653u64,
131        "room_id": "!jEsUZKDJdhlrceRyVU:example.org",
132        "sender": "@example:example.org",
133        "state_key": "",
134        "type": "m.room.encryption",
135        "unsigned": {
136            "age": 1234
137        }
138    })
139});
140
141// TODO: Move `prev_content` into `unsigned` once ruma supports it
142pub static MEMBER: Lazy<JsonValue> = Lazy::new(|| {
143    json!({
144        "content": {
145            "avatar_url": null,
146            "displayname": "example",
147            "membership": "join"
148        },
149        "event_id": "$151800140517rfvjc:localhost",
150        "membership": "join",
151        "origin_server_ts": 151800140,
152        "sender": "@example:localhost",
153        "state_key": "@example:localhost",
154        "type": "m.room.member",
155        "prev_content": {
156            "avatar_url": null,
157            "displayname": "example",
158            "membership": "invite"
159        },
160        "unsigned": {
161            "age": 297036,
162            "replaces_state": "$151800111315tsynI:localhost"
163        }
164    })
165});
166
167// Make @invited:localhost a member (note the confusing name)
168pub static MEMBER_ADDITIONAL: Lazy<JsonValue> = Lazy::new(|| {
169    json!({
170        "content": {
171            "membership": "join",
172        },
173        "event_id": "$747273582443PhrSn:localhost",
174        "origin_server_ts": 1472735824,
175        "sender": "@example:localhost",
176        "state_key": "@invited:localhost",
177        "type": "m.room.member",
178        "unsigned": {
179            "age": 1234
180        }
181    })
182});
183
184// Make @invited:localhost leave the room (note the confusing name)
185pub static MEMBER_LEAVE: Lazy<JsonValue> = Lazy::new(|| {
186    json!({
187        "content": {
188            "membership": "leave",
189        },
190        "event_id": "$747273582443PhrS9:localhost",
191        "origin_server_ts": 1472735820,
192        "sender": "@example:localhost",
193        "state_key": "@invited:localhost",
194        "type": "m.room.member",
195        "unsigned": {
196            "age": 1234
197        }
198    })
199});
200
201pub static MEMBER_BAN: Lazy<JsonValue> = Lazy::new(|| {
202    json!({
203        "content": {
204            "avatar_url": null,
205            "displayname": "example",
206            "membership": "ban"
207        },
208        "event_id": "$151800140517rfvjc:localhost",
209        "origin_server_ts": 151800140,
210        "sender": "@example:localhost",
211        "state_key": "@banned:localhost",
212        "type": "m.room.member",
213    })
214});
215
216pub static MEMBER_INVITE: Lazy<JsonValue> = Lazy::new(|| {
217    json!({
218        "content": {
219            "avatar_url": "mxc://localhost/SEsfnsuifSDFSSEF",
220            "displayname": "example",
221            "membership": "invite",
222            "reason": "Looking for support"
223        },
224        "event_id": "$143273582443PhrSn:localhost",
225        "origin_server_ts": 1432735824,
226        "room_id": "!jEsUZKDJdhlrceRyVU:localhost",
227        "sender": "@example:localhost",
228        "state_key": "@invited:localhost",
229        "type": "m.room.member",
230        "unsigned": {
231            "age": 1234,
232            "invite_room_state": [
233                {
234                    "content": {
235                        "name": "Example Room"
236                    },
237                    "sender": "@example:localhost",
238                    "state_key": "",
239                    "type": "m.room.name"
240                },
241                {
242                    "content": {
243                        "join_rule": "invite"
244                    },
245                    "sender": "@example:localhost",
246                    "state_key": "",
247                    "type": "m.room.join_rules"
248                }
249            ]
250        }
251    })
252});
253
254// TODO: Move `prev_content` into `unsigned` once ruma supports it
255pub static MEMBER_NAME_CHANGE: Lazy<JsonValue> = Lazy::new(|| {
256    json!({
257        "content": {
258            "avatar_url": null,
259            "displayname": "changed",
260            "membership": "join"
261        },
262        "event_id": "$151800234427abgho:localhost",
263        "membership": "join",
264        "origin_server_ts": 151800152,
265        "sender": "@example:localhost",
266        "state_key": "@example:localhost",
267        "type": "m.room.member",
268        "prev_content": {
269            "avatar_url": null,
270            "displayname": "example",
271            "membership": "join"
272        },
273        "unsigned": {
274            "age": 297032,
275            "replaces_state": "$151800140517rfvjc:localhost"
276        }
277    })
278});
279
280pub static MEMBER_STRIPPED: Lazy<JsonValue> = Lazy::new(|| {
281    json!({
282        "content": {
283            "avatar_url": null,
284            "displayname": "example",
285            "membership": "join"
286        },
287        "sender": "@example:localhost",
288        "state_key": "@example:localhost",
289        "type": "m.room.member",
290    })
291});
292
293pub static NAME: Lazy<JsonValue> = Lazy::new(|| {
294    json!({
295        "content": {
296            "name": "room name"
297        },
298        "event_id": "$15139375513VdeRF:localhost",
299        "origin_server_ts": 151393755,
300        "sender": "@example:localhost",
301        "state_key": "",
302        "type": "m.room.name",
303        "unsigned": {
304            "age": 703422
305        }
306    })
307});
308
309pub static NAME_STRIPPED: Lazy<JsonValue> = Lazy::new(|| {
310    json!({
311        "content": {
312            "name": "room name"
313        },
314        "sender": "@example:localhost",
315        "state_key": "",
316        "type": "m.room.name",
317    })
318});
319
320pub static PINNED_EVENTS: Lazy<JsonValue> = Lazy::new(|| {
321    json!({
322        "content": {
323            "pinned": [ "$a", "$b" ]
324        },
325        "event_id": "$15139375513VdeRF:localhost",
326        "origin_server_ts": 151393755,
327        "sender": "@example:localhost",
328        "state_key": "",
329        "type": "m.room.pinned_events",
330        "unsigned": {
331            "age": 703422
332        }
333    })
334});
335
336pub static POWER_LEVELS: Lazy<JsonValue> = Lazy::new(|| {
337    json!({
338        "content": {
339            "ban": 50,
340            "events": {
341                "m.room.avatar": 50,
342                "m.room.canonical_alias": 50,
343                "m.room.history_visibility": 100,
344                "m.room.name": 50,
345                "m.room.power_levels": 100,
346                "m.room.message": 25
347            },
348            "events_default": 0,
349            "invite": 0,
350            "kick": 50,
351            "redact": 50,
352            "state_default": 50,
353            "notifications": {
354                "room": 0
355            },
356            "users": {
357                "@example:localhost": 100,
358                "@bob:localhost": 0
359            },
360            "users_default": 0
361        },
362        "event_id": "$15139375512JaHAW:localhost",
363        "origin_server_ts": 151393755,
364        "sender": "@example:localhost",
365        "state_key": "",
366        "type": "m.room.power_levels",
367        "unsigned": {
368            "age": 703422
369        }
370    })
371});
372
373pub static PRESENCE: Lazy<JsonValue> = Lazy::new(|| {
374    json!({
375        "content": {
376            "avatar_url": "mxc://localhost/wefuiwegh8742w",
377            "currently_active": false,
378            "last_active_ago": 1,
379            "presence": "online",
380            "status_msg": "Making cupcakes"
381        },
382        "sender": "@example:localhost",
383        "type": "m.presence"
384    })
385});
386
387pub static PUSH_RULES: Lazy<JsonValue> = Lazy::new(|| {
388    json!({
389        "content": {
390            "global": {
391                "content": [
392                    {
393                        "actions": [
394                            "notify",
395                            {
396                                "set_tweak": "sound",
397                                "value": "default"
398                            },
399                            {
400                                "set_tweak": "highlight"
401                            }
402                        ],
403                        "default": true,
404                        "enabled": true,
405                        "pattern": "example",
406                        "rule_id": ".m.rule.contains_user_name"
407                    }
408                ],
409                "override": [
410                    {
411                        "actions": [
412                            "dont_notify"
413                        ],
414                        "conditions": [],
415                        "default": true,
416                        "enabled": false,
417                        "rule_id": ".m.rule.master"
418                    },
419                    {
420                        "actions": [
421                            "dont_notify"
422                        ],
423                        "conditions": [
424                            {
425                                "key": "content.msgtype",
426                                "kind": "event_match",
427                                "pattern": "m.notice"
428                            }
429                        ],
430                        "default": true,
431                        "enabled": true,
432                        "rule_id": ".m.rule.suppress_notices"
433                    }
434                ],
435                "room": [
436                    {
437                      "actions": [
438                        "notify",
439                        {
440                          "set_tweak": "sound",
441                          "value": "default"
442                        }
443                      ],
444                      "rule_id": *DEFAULT_TEST_ROOM_ID,
445                      "default": false,
446                      "enabled": true
447                    }
448                ],
449                "sender": [],
450                "underride": [
451                    {
452                        "actions": [
453                            "notify",
454                            {
455                                "set_tweak": "sound",
456                                "value": "ring"
457                            },
458                            {
459                                "set_tweak": "highlight",
460                                "value": false
461                            }
462                        ],
463                        "conditions": [
464                            {
465                                "key": "type",
466                                "kind": "event_match",
467                                "pattern": "m.call.invite"
468                            }
469                        ],
470                        "default": true,
471                        "enabled": true,
472                        "rule_id": ".m.rule.call"
473                    },
474                    {
475                        "actions": [
476                            "notify",
477                            {
478                                "set_tweak": "sound",
479                                "value": "default"
480                            },
481                            {
482                                "set_tweak": "highlight"
483                            }
484                        ],
485                        "conditions": [
486                            {
487                                "kind": "contains_display_name"
488                            }
489                        ],
490                        "default": true,
491                        "enabled": true,
492                        "rule_id": ".m.rule.contains_display_name"
493                    },
494                    {
495                        "actions": [
496                            "notify",
497                            {
498                                "set_tweak": "sound",
499                                "value": "default"
500                            },
501                            {
502                                "set_tweak": "highlight",
503                                "value": false
504                            }
505                        ],
506                        "conditions": [
507                            {
508                                "is": "2",
509                                "kind": "room_member_count"
510                            },
511                            {
512                                "key": "type",
513                                "kind": "event_match",
514                                "pattern": "m.room.message"
515                            }
516                        ],
517                        "default": true,
518                        "enabled": true,
519                        "rule_id": ".m.rule.room_one_to_one"
520                    },
521                    {
522                        "actions": [
523                            "notify",
524                            {
525                                "set_tweak": "sound",
526                                "value": "default"
527                            },
528                            {
529                                "set_tweak": "highlight",
530                                "value": false
531                            }
532                        ],
533                        "conditions": [
534                            {
535                                "key": "type",
536                                "kind": "event_match",
537                                "pattern": "m.room.member"
538                            },
539                            {
540                                "key": "content.membership",
541                                "kind": "event_match",
542                                "pattern": "invite"
543                            },
544                            {
545                                "key": "state_key",
546                                "kind": "event_match",
547                                "pattern": "@example:localhost"
548                            }
549                        ],
550                        "default": true,
551                        "enabled": true,
552                        "rule_id": ".m.rule.invite_for_me"
553                    },
554                    {
555                        "actions": [
556                            "notify",
557                            {
558                                "set_tweak": "highlight",
559                                "value": false
560                            }
561                        ],
562                        "conditions": [
563                            {
564                                "key": "type",
565                                "kind": "event_match",
566                                "pattern": "m.room.member"
567                            }
568                        ],
569                        "default": true,
570                        "enabled": true,
571                        "rule_id": ".m.rule.member_event"
572                    },
573                    {
574                        "actions": [
575                            "notify",
576                            {
577                                "set_tweak": "highlight",
578                                "value": false
579                            }
580                        ],
581                        "conditions": [
582                            {
583                                "key": "type",
584                                "kind": "event_match",
585                                "pattern": "m.room.message"
586                            }
587                        ],
588                        "default": true,
589                        "enabled": true,
590                        "rule_id": ".m.rule.message"
591                    }
592                ]
593            }
594        },
595        "type": "m.push_rules"
596    })
597});
598
599pub static REDACTED_INVALID: Lazy<JsonValue> = Lazy::new(|| {
600    json!({
601        "content": {},
602        "event_id": "$15275046980maRLj:localhost",
603        "origin_server_ts": 1527504698,
604        "sender": "@example:localhost",
605        "type": "m.room.message"
606    })
607});
608
609pub static REDACTED_STATE: Lazy<JsonValue> = Lazy::new(|| {
610    json!({
611        "content": {},
612        "event_id": "$example_id:example.org",
613        "origin_server_ts": 153232493,
614        "sender": "@example:example.org",
615        "state_key": "test_state_key",
616        "type": "m.some.state",
617        "unsigned": {
618            "age": 3069315,
619            "redacted_because": {
620                "content": {},
621                "event_id": "$redaction_example_id:example.org",
622                "origin_server_ts": 153232494,
623                "redacts": "$example_id:example.org",
624                "sender": "@example:example:org",
625                "type": "m.room.redaction",
626                "unsigned": {"age": 30693147}
627            },
628            "redacted_by": "$redaction_example_id:example.org"
629        }
630    })
631});
632
633pub static ROOM_AVATAR: Lazy<JsonValue> = Lazy::new(|| {
634    json!({
635        "content": {
636            "info": {
637                "h": 398,
638                "mimetype": "image/jpeg",
639                "size": 31037,
640                "w": 394
641            },
642            "url": "mxc://domain.com/JWEIFJgwEIhweiWJE"
643        },
644        "event_id": "$143273582443PhrSn:domain.com",
645        "origin_server_ts": 143273582,
646        "room_id": "!jEsUZKDJdhlrceRyVU:domain.com",
647        "sender": "@example:domain.com",
648        "state_key": "",
649        "type": "m.room.avatar",
650        "unsigned": {
651            "age": 1234
652        }
653    })
654});
655
656pub static TAG: Lazy<JsonValue> = Lazy::new(|| {
657    json!({
658        "content": {
659            "tags": {
660                "m.favourite": {
661                    "order": 0.0
662                },
663                "u.work": {
664                    "order": 0.9
665                }
666            }
667        },
668        "type": "m.tag"
669    })
670});
671
672// TODO: Move `prev_content` into `unsigned` once ruma supports it
673pub static TOPIC: Lazy<JsonValue> = Lazy::new(|| {
674    json!({
675        "content": {
676            "topic": "😀"
677        },
678        "event_id": "$151957878228ssqrJ:localhost",
679        "origin_server_ts": 151957878,
680        "sender": "@example:localhost",
681        "state_key": "",
682        "room_id": "!jEsUZKDJdhlrceRyVU:example.org",
683        "type": "m.room.topic",
684        "prev_content": {
685            "topic": "test"
686        },
687        "unsigned": {
688          "age": 1392989,
689          "prev_sender": "@example:localhost",
690          "replaces_state": "$151957069225EVYKm:localhost"
691        }
692    })
693});
694
695pub static TOPIC_REDACTION: Lazy<JsonValue> = Lazy::new(|| {
696    json!({
697        "content": {},
698        "redacts": "$151957878228ssqrJ:localhost",
699        "event_id": "$151957878228ssqrJ_REDACTION:localhost",
700        "origin_server_ts": 151957879,
701        "sender": "@example:localhost",
702        "type": "m.room.redaction",
703        "unsigned": {
704          "age": 1392990,
705          "prev_sender": "@example:localhost",
706        }
707    })
708});