Commit Graph

595 Commits (7abdeed449af37889043a81b4ba5463425ab3b0f)

Author SHA1 Message Date
Denis Kasak 7abdeed449 fix: Don't issue a disambiguation in case of a unique display name. 2020-07-10 11:08:40 +02:00
Denis Kasak eeebb43e32 Move mutating methods from RoomMember to Room.
The `update_profile` method cannot live in `RoomMember` since that
operation needs information which only exists in `Room` (for instance,
it needs other members in order to perform display name disambiguation).

Leaving other mutating methods on `RoomMember` (like `update_power` and
`update_presence`) then seemed illogical so they were all moved into
`Room`.

In addition, a small refactoring was done to remove
`did_update_presence` and `update_presence` since their existence
doesn't make much sense anymore and it saves us from repeating work.
Their function is now done in `receive_presence_event`.

Also, several docstrings were corrected and reworded.
2020-07-10 11:08:38 +02:00
Denis Kasak 5f49dab1fa Correct docstring. 2020-07-10 11:05:51 +02:00
Denis Kasak 6cacf83661 Add (failing) test for displayname disambiguation on profile updates. 2020-07-10 11:05:51 +02:00
Denis Kasak 599c1ba98f Add test to ensure member is only treated as joined or invited, not both. 2020-07-10 11:05:51 +02:00
Denis Kasak c2ec69cf44 Style fixes (comment grammar and correctness, whitespace). 2020-07-10 11:05:51 +02:00
Denis Kasak 32bdcede0c Small refactoring to simplify member_disambiguations. 2020-07-10 11:05:51 +02:00
Denis Kasak 9af48920f6 Add some TODOs and FIXMEs. 2020-07-10 11:05:51 +02:00
Denis Kasak ff5f638b60 Remove member from invited_members when he joins. 2020-07-03 15:35:54 +02:00
Denis Kasak 2a0c6c6474 Add test and example event to ensure display name changes work correctly. 2020-07-03 15:35:54 +02:00
Denis Kasak f447c55fcb Move prev_content in test data to top level for now.
Until Ruma fixes it upstream, see hoist_room_event_prev_content for more
information.
2020-07-03 15:35:54 +02:00
Denis Kasak 84fc662614 Document and improve EventBuilder.
EventBuilder now clears itself between `build_sync_response` calls so
that each subsequent call will return an empty response if nothing was
added.

This allows reuse of a single EventBuilder instance which is important
for correct sync token rotation.
2020-07-03 15:35:54 +02:00
Denis Kasak c57f076375 Remove unused import. 2020-07-03 15:35:54 +02:00
Denis Kasak 4561b94f33 Remove outdated TODO. 2020-07-03 15:35:54 +02:00
Denis Kasak 9bd8699e18 Get rid of match on membership change in RoomMember::update_profile.
The calling method already did this when it determined that
update_profile should be called so we don't need to repeat it.
2020-07-03 15:35:54 +02:00
Denis Kasak 5ef9a7b924 tests: Rename get_room_id to test_room_id.
To make it more obvious it's a special room ID value used in tests.
2020-07-03 15:35:54 +02:00
Damir Jelić bd56c52b37 base: Don't double borrow the response in one iter rooms method. 2020-07-03 12:30:57 +02:00
Denis Kasak 1f25c4cf4b Fix and test hoisting of `prev_content` for timeline events.
The previous test only tested using the `EventEmitter`, which missed the
fact that the client was receiving unhoisted events. The test now also
tests the client state to detect this.
2020-07-03 11:54:08 +02:00
Denis Kasak 3f1a40a7d1 Add a bunch of FIXMEs to have receive_* methods do the emitting. 2020-07-03 10:31:47 +02:00
Damir Jelić b092ed0a82 base: Put the decrypted event replacing in the correct place. 2020-07-02 23:16:56 +02:00
Damir Jelić cd9252cc3d matrix-sdk: Remove an unused import. 2020-06-26 18:21:44 +02:00
Damir Jelić 8b13602b3b Merge branch 'room-search' 2020-06-26 10:15:31 +02:00
Devin R 92a43e7685 Move test data to test crate, fix docs 2020-06-25 08:31:51 -04:00
Damir Jelić 262a61afc9 crypto: Simplify the group session pair creation. 2020-06-25 13:31:30 +02:00
Devin R 1016519bb6 matrix_sdk: Rename public room builder and client methods
Remove 'get' from get_public_rooms* methods.
Rename RoomSearchBuilder -> RoomListFilterBuilder.
Use u32 over UInt in builders and Into<String> for String.
Fix docs of public room methods and builders.
2020-06-24 07:46:40 -04:00
Devin R 4dbe785bd7 matrix_sdk: Add get_public_rooms* methods to Client
This also adds a RoomSearchBuilder for making get_public_rooms_filtered
requests and a test for each method.
2020-06-24 06:54:45 -04:00
Damir Jelić 676d547161 matrix-sdk: Disable the tarpaulin skip lines since it fails to run with them. 2020-06-24 11:25:31 +02:00
Damir Jelić 6a670163d3 Merge branch 'feature/display-name' 2020-06-24 10:42:58 +02:00
Damir Jelić b8c4d1d5fa matrix-sdk: Remove the last test_data folder and fix the remaining tests. 2020-06-24 10:07:03 +02:00
Devin R 9e738f45ef crypto/base: Finish moving to using static json values for test data 2020-06-22 16:18:12 -04:00
Devin R 8e8ac8c5ac matrix_sdk_base: Use test_json values for tests in base 2020-06-21 14:22:28 -04:00
Devin R 4a7b3a103c matrix_sdk_test: Use static JSON values instead of reading files 2020-06-21 14:13:26 -04:00
Devin R fc077bcd6b matrix-sdk-test: Remove duplicate test_data folder, leave top-level 2020-06-21 14:13:03 -04:00
Denis Kasak c0c02baffc Run cargo fmt and apply clippy lints. 2020-06-20 13:05:16 +02:00
Denis Kasak 1174ccfc89
Merge branch 'master' into feature/display-name 2020-06-20 12:54:46 +02:00
Denis Kasak 733689870e Fix compilation error and remaining test.
Ref. for compilation error:
https://github.com/rust-lang/rust/issues/64552
2020-06-20 12:51:02 +02:00
Marcel 255451b8c7 Add missing dependency matrix-sdk-common-macros to matrix-sdk 2020-06-17 19:42:07 +02:00
Marcel d4087a1aae Fix cargo fmt issues that the local version didn't auto fix 2020-06-17 19:16:04 +02:00
Marcel f07ac5d679 Commit missing matrix_sdk_common_macros folder 2020-06-17 19:08:26 +02:00
Marcel 8b77b4171a Do wasm sepcific changes:
- Only use send+sync when not using wasm
- Use wasm capabale async_trait wrapper macro
- Make room and room_member specific structs always clonable
2020-06-17 18:57:39 +02:00
Damir Jelić ea427cf366 Merge branch 'upload-keys' 2020-06-17 09:33:09 +02:00
Devin R 15191d0230 crypto: Fix overflow in should_upload_keys, bail out if uploaded keys > max uploaded 2020-06-16 18:07:13 -04:00
Denis Kasak 5bd3c49afc Correctly handle disambiguation for exiting members, refactor and test. 2020-06-15 17:29:38 +02:00
Denis Kasak 765487dd9f Fix comment style. 2020-06-15 17:29:38 +02:00
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
Damir Jelić c3373f796b Merge branch 'export-base-error' 2020-06-15 09:47:51 +02:00
Damir Jelić 311e41ee0d matrix-sdk: Fix the author field in the cargo files. 2020-06-15 09:47:13 +02:00
Devin R f8b5fceeb1 matrix-sdk: Export matrix-sdk-base Error type as BaseError 2020-06-14 20:00:41 -04: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