Skip to content

Commit 3bcdd17

Browse files
committed
test: test that read receipts don't degrade encryption
This is broken since 44227d7 mimeparser only recognizes read receipts by the Content-Type being "multipart/report". If multipart/report is hidden inside multipart/mixed and the message is not encrypted, it degrades encryption.
1 parent 4dc596e commit 3bcdd17

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

deltachat-rpc-client/tests/test_something.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,3 +396,46 @@ def test_provider_info(rpc) -> None:
396396
rpc.set_config(account_id, "socks5_enabled", "1")
397397
provider_info = rpc.get_provider_info(account_id, "github.com")
398398
assert provider_info is None
399+
400+
401+
def test_mdn_doesnt_break_autocrypt(acfactory) -> None:
402+
alice, bob = acfactory.get_online_accounts(2)
403+
404+
bob_addr = bob.get_config("addr")
405+
406+
alice_contact_bob = alice.create_contact(bob_addr, "Bob")
407+
408+
# Bob creates chat manually so chat with Alice is accepted.
409+
alice_chat_bob = alice_contact_bob.create_chat()
410+
411+
# Alice sends a message to Bob.
412+
alice_chat_bob.send_text("Hello Bob!")
413+
event = bob.wait_for_incoming_msg_event()
414+
msg_id = event.msg_id
415+
message = bob.get_message_by_id(msg_id)
416+
snapshot = message.get_snapshot()
417+
418+
# Bob sends a message to Alice.
419+
bob_chat_alice = snapshot.chat
420+
bob_chat_alice.accept()
421+
bob_chat_alice.send_text("Hello Alice!")
422+
event = alice.wait_for_incoming_msg_event()
423+
msg_id = event.msg_id
424+
message = alice.get_message_by_id(msg_id)
425+
snapshot = message.get_snapshot()
426+
assert snapshot.show_padlock
427+
428+
# Alice reads Bob's message.
429+
message.mark_seen()
430+
while True:
431+
event = bob.wait_for_event()
432+
if event.kind == EventType.MSG_READ:
433+
break
434+
435+
# Bob sends a message to Alice, it should also be encrypted.
436+
bob_chat_alice.send_text("Hi Alice!")
437+
event = alice.wait_for_incoming_msg_event()
438+
msg_id = event.msg_id
439+
message = alice.get_message_by_id(msg_id)
440+
snapshot = message.get_snapshot()
441+
assert snapshot.show_padlock

0 commit comments

Comments
 (0)