Skip to content

Commit 877b583

Browse files
committed
test: basic exclude clear to-device traffic for widgets in e2ee room
1 parent d86d8f7 commit 877b583

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

crates/matrix-sdk/src/widget/matrix.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,6 @@ impl MatrixDriver {
240240
return;
241241
};
242242

243-
// Or should I use room.encryption_settings()?
244243
let room_encrypted = room.latest_encryption_state().await
245244
.map(|s| s.is_encrypted())
246245
// Default consider encrypted

crates/matrix-sdk/tests/integration/widget.rs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,38 @@ async fn test_receive_live_events() {
487487
assert_matches!(recv_message(&driver_handle).now_or_never(), None);
488488
}
489489

490+
#[async_test]
491+
async fn test_block_clear_to_device_in_e2ee_room() {
492+
let (client, mock_server, driver_handle) = run_test_driver(false, true).await;
493+
494+
negotiate_capabilities(
495+
&driver_handle,
496+
json!(["org.matrix.msc3819.receive.to_device:my.custom.to.device"]),
497+
)
498+
.await;
499+
500+
// No messages from the driver yet
501+
assert_matches!(recv_message(&driver_handle).now_or_never(), None);
502+
503+
mock_server
504+
.mock_sync()
505+
.ok_and_run(&client, |sync_builder| {
506+
sync_builder.add_to_device_event(json!({
507+
"sender": "@alice:example.com",
508+
"type": "my.custom.to.device",
509+
"content": {
510+
"a": "test",
511+
}
512+
}
513+
));
514+
})
515+
.await;
516+
517+
// The message should be filtered out because it is not encrypted and the room
518+
// is encrypted
519+
assert_matches!(recv_message(&driver_handle).now_or_never(), None);
520+
}
521+
490522
#[async_test]
491523
async fn test_send_room_message() {
492524
let (_, mock_server, driver_handle) = run_test_driver(false, false).await;

0 commit comments

Comments
 (0)