Denis Kasak
03e53e991b
Hoist prev_content to top-level in both timeline and state events.
...
Also refactor and document why this hoisting is needed.
This change makes the user_presence test fail because the hoisting
exposes an error encoded into the test's expected result.
Previously, the test expected 2 members in the room at the end. This is
incorrect since one of the members in the test data leaves the room.
However, since the prev_content of state events was previously not
hoisted to the top level, the `membership_change` method would not
notice it and thus not realize the member had left the room. The test
was corrected to expect only a single member in the room.
Another test change was made due to a limitation of EventBuilder: due to
the fact that it makes the test data go through a de/ser cycle, it
cannot easily hoist prev_content to the top level. Because of this, the
tests were change to put prev_content into the top level from the
outset.
2020-06-15 17:21:26 +02:00
Denis Kasak
97b1bb6004
Must not take our user into account when calculating room name.
2020-06-10 22:53:31 +02:00
Denis Kasak
331cb02266
Split joined/invited users and handle removing users.
2020-06-10 18:12:27 +02:00
Denis Kasak
7751605e37
Nix RoomMember::update_member and tracking membership.
...
After discussing with poljar, we concluded we don't actually need to
tracking membership state, since we won't be tracking users that
left (banned, kicked, disinvited).
The only thing we need to keep track of is the difference between joined
and invited users which will be dealt with in a separate commit.
2020-06-10 16:36:51 +02:00
Denis Kasak
a0eaa9c364
Implement RoomMember::unique_name.
...
This gives us a name that is as ergonomic as possible while guaranteeing
it is unique.
2020-06-10 14:44:41 +02:00
Denis Kasak
241d456a81
Add RoomMember::name.
...
Returns the most ergonomic name for the member (either the display name
(if set) or the MXID).
2020-06-10 14:39:12 +02:00
Denis Kasak
3e5b6bb460
Style fixes.
2020-06-10 12:04:58 +02:00
Denis Kasak
5868c72662
Small refactor so we don't duplicate user_id creation.
2020-06-10 12:01:01 +02:00
Denis Kasak
4c184a30a2
Add doc comment to RoomName::calculate_name.
2020-06-10 00:28:56 +02:00
Denis Kasak
e4977d1d2a
Refactor member_display_name.
...
Make it more readable, add comments.
2020-06-09 23:02:01 +02:00
Denis Kasak
ac069152b9
Retrieve user id from RoomMember instead of reconstructing.
2020-06-09 22:19:51 +02:00
Denis Kasak
82827542b7
fixup: explicit type annotations
2020-06-09 19:31:01 +02:00
Denis Kasak
20a8e8e49b
Fix comment styling.
2020-06-09 19:24:00 +02:00
Denis Kasak
098cc1f9f8
Add explicit type annotation.
2020-06-09 19:08:14 +02:00
Denis Kasak
a3c46c6144
Run cargo fmt.
2020-06-09 16:41:26 +02:00
Denis Kasak
b93eb0e318
Make Room::member_display_name return MXID as fallback.
...
If there is no display name set. This means the method can now always
return something so there is no need to wrap in an `Option`.
2020-06-09 16:16:21 +02:00
Denis Kasak
e6b67e5fa7
Add short explanation to Room::member_display_name.
2020-06-09 15:35:43 +02:00
Denis Kasak
22ba253103
Use "disambiguated" instead of "resolved" display name in the doc comment.
...
To match how the C2S spec calls it.
2020-06-09 15:29:37 +02:00
Denis Kasak
a9fd63fd4b
Fix display name disambiguation so it passes the test.
2020-06-09 15:20:21 +02:00
Denis Kasak
60a43439e5
Properly test for display name disambiguation.
2020-06-09 15:20:21 +02:00
Denis Kasak
e3cb3566bf
Rename display_names -> disambiguated_display_names.
2020-06-09 15:20:21 +02:00
Valentin Brandl
9f34615869
Add first test for display names
2020-06-09 12:33:24 +02:00
Valentin Brandl
05503b28b7
Only add name duplicates to the display name map
2020-06-09 12:33:24 +02:00
Valentin Brandl
49e913865d
Fix failing test
2020-06-09 12:33:06 +02:00
Valentin Brandl
4675a72e6b
Rename accessor for display name
2020-06-09 12:30:12 +02:00
Valentin Brandl
d5f66631c1
Implement display name resolving
2020-06-09 12:30:12 +02:00
Devin R
81baca2f92
base_client: emit typing events and test using EventEmitter
2020-06-06 17:00:29 -04:00
Damir Jelić
9f34b371be
Merge branch 'unify-ee-methods'
2020-06-02 10:30:20 +02:00
Devin R
db38bf1276
event_emitter: use enum to represent custom events and raw json
2020-06-01 17:02:12 -04:00
Devin R
8f017e7b27
event-emitter: rename on_account_data_* -> on_non_room_*
2020-06-01 07:13:57 -04:00
Devin R
9cb86596d8
add support for custom events and unrecognized by ruma events, test new code
2020-05-29 17:36:58 -04:00
Damir Jelić
6c3863f096
base: Don't unwrap when creating the olm machine.
2020-05-25 14:58:06 +02:00
Damir Jelić
3b5c9d3c75
Merge branch 'prev-content'
2020-05-25 14:31:19 +02:00
Damir Jelić
8869da0a38
Merge branch 'msg-tests'
2020-05-25 14:22:15 +02:00
Damir Jelić
ba66ee214f
matrix-sdk: Move most of the configuration to the base client.
2020-05-25 14:21:04 +02:00
Devin R
1ba2f584cb
add the messages
feature to dev-deps so the tests are run
2020-05-23 08:14:29 -04:00
Devin R
ac4698f0d6
base_client: only swap prev_content if outer is None
2020-05-22 21:29:51 -04:00
Devin R
86a01a0ca6
Merge branch 'master' into prev-content
2020-05-22 17:20:06 -04:00
Devin R
2f6bebdd1a
base_client: replace event if prev_content deserialized from unsigned
2020-05-22 17:12:58 -04:00
Damir Jelić
ea5f7f1d19
matrix-sdk: Don't require the the session at client creation time.
...
The client objects in the sdk accepted an optional session argument at
creation time. If provided this would restore the client into a logged
in state.
Since we need to restore the client state and encryption state at some
point it makes sense to do it when the client transitions into a logged
in state. At the same time we would like to avoid the client creation to
be async.
This introduces a restore_login() method which can be called instead of
the login() method to restore a session.
2020-05-22 15:23:58 +02:00
Damir Jelić
6e83f7ffa1
base: Rename the method to remove room state.
2020-05-22 09:56:11 +02:00
Devin R
5c7ea17eef
state_store: only remove room state file don't bother moving the file
2020-05-21 18:38:25 -04:00
Devin R
20de6f6aea
base_client: prev_content deserialization TODO for if/when to mutate the event
2020-05-21 16:52:05 -04:00
Devin R
eedf4e72d1
base_client: if unsigned field contains prev_content pull out and add to MemberEvent
2020-05-21 10:16:04 -04:00
Devin R
8489be590a
state_store: clippy TODO question
2020-05-18 16:37:28 -04:00
Devin R
0f6caec93d
state_store: move room file when room state changes, test room_state_change method, doc edits
2020-05-18 16:26:27 -04:00
Damir Jelić
8c6c34e01a
matrix-sdk: Don't require coverage for some debug implementations.
2020-05-14 15:26:22 +02:00
Damir Jelić
77973f15ba
base: Disable a test that requires SystemTime under wasm.
2020-05-14 15:12:14 +02:00
Damir Jelić
4972104f72
base: Make an unreadable numeric literal readable.
2020-05-14 14:52:32 +02:00
Damir Jelić
e3c16a3aa0
base: Don't use random event ids, they don't work under wasm.
2020-05-14 14:50:20 +02:00
Damir Jelić
9884c0bb7a
base: The session sharing test only works if encryption is enabled.
2020-05-14 14:01:16 +02:00
Damir Jelić
96cf90e47c
base: Store the whole encryption info for the room.
2020-05-14 13:58:09 +02:00
Damir Jelić
c0ff782ea3
base: Remove an aditional looping through the joined state events.
2020-05-14 13:01:41 +02:00
Damir Jelić
c9d38cdedb
base: Expire group sessions if the member list changes.
2020-05-14 13:01:41 +02:00
Damir Jelić
ecbd801c70
crypto: Invalidate group sessions if they fail to be shared.
2020-05-14 11:55:12 +02:00
Damir Jelić
77a8f1b1bc
base: Test the invited room creation.
2020-05-14 10:57:21 +02:00
Damir Jelić
fff3abf985
bae: More room creation tests.
2020-05-13 16:25:42 +02:00
Damir Jelić
e32af74be5
base: Add some initial test for room creation.
2020-05-13 15:57:09 +02:00
Damir Jelić
51f0a487ce
base: Remove the stale rooms from the hashmaps.
2020-05-13 13:23:16 +02:00
Damir Jelić
dc56063c67
base: Move the user tracking logic to the correct place.
2020-05-13 13:10:21 +02:00
Damir Jelić
a8f94e2329
base: Add some missing debug implementations and add more strict lints.
2020-05-13 12:34:46 +02:00
Damir Jelić
8a401d23e2
base: Always store the new sync token, even if nothing changed in the rooms.
2020-05-13 12:27:16 +02:00
Damir Jelić
993dc8264a
base: Return early if we get a duplicate sync response.
2020-05-13 12:26:07 +02:00
Damir Jelić
676633eec1
base: Rename the state store file since it's a specific implementation of it.
2020-05-13 10:58:30 +02:00
Damir Jelić
e9b48b73d4
base: Move the AllRooms out of the state_store file.
2020-05-13 10:50:58 +02:00
Damir Jelić
f1d12ff1f3
matrix-sdk: Remove all mentions of the AsyncClient.
2020-05-13 10:06:08 +02:00
Damir Jelić
66620ab99a
base: Use the locks from our common crate.
2020-05-13 10:03:41 +02:00
Devin R
21bf631f47
Merge branch 'master' into store-room
2020-05-12 18:08:51 -04:00
stoically
ef6104bc53
matrix-sdk: Support compiling to wasm32-unknown-unknown
2020-05-12 15:48:09 +02:00
Devin R
2c45513b97
remove tarpaulin skip attr
2020-05-11 17:38:18 -04:00
Devin R
21712d0930
state_store: load/store each room type (invite, join, left), add type for returning 3 room maps
2020-05-11 15:54:11 -04:00
Devin R
22c4a1f2e7
Merge branch 'master' of https://github.com/matrix-org/matrix-rust-sdk into store-room
2020-05-11 14:17:31 -04:00
Devin R
0d0d8fca2d
client: add store_room_state method
2020-05-11 07:04:47 -04:00
Damir Jelić
b6c0d4e3bb
base: Rename the Client to BaseClient.
2020-05-11 10:43:21 +02:00
Damir Jelić
8a7aefac3b
matrix-sdk: Split out the error types in our base and matrix-sdk crates.
2020-05-08 12:39:36 +02:00
Damir Jelić
9461f08906
base: Rename the base client file.
2020-05-08 11:49:25 +02:00
Damir Jelić
ef6458c9cd
matrix-sdk: Fix the feature flags for real this time.
2020-05-08 11:07:08 +02:00
Damir Jelić
207fac2b49
matrix-sdk: Move the EventBuilder into a separate crate so it can be reused.
2020-05-08 09:49:55 +02:00
Devin R
d32172f74e
base_client: todo about room hashmaps
2020-05-07 15:24:55 -04:00
Devin R
4f96ac96e2
async_client: add tests for all current endpoints, event emitter typeing/receipt events, set unread notifications
2020-05-07 15:21:06 -04:00
Damir Jelić
14580bc383
matrix_sdk: Fix most of the tests now that we have the big split.
2020-05-07 16:22:18 +02:00
Damir Jelić
30f8ccd2de
matrix-sdk: Move the bulk of the sdk into a separate base crate.
2020-05-07 14:58:38 +02:00