Skip to content

Commit 394cba3

Browse files
committed
test: use encryption in more Rust tests
1 parent f472c05 commit 394cba3

File tree

4 files changed

+93
-94
lines changed

4 files changed

+93
-94
lines changed

src/chat/chat_tests.rs

+58-42
Original file line numberDiff line numberDiff line change
@@ -424,11 +424,10 @@ async fn test_msg_with_implicit_member_removed() -> Result<()> {
424424
let mut tcm = TestContextManager::new();
425425
let alice = tcm.alice().await;
426426
let bob = tcm.bob().await;
427-
let alice_bob_contact_id =
428-
Contact::create(&alice, "Bob", &bob.get_config(Config::Addr).await?.unwrap()).await?;
429-
let fiona_addr = "[email protected]";
430-
let alice_fiona_contact_id = Contact::create(&alice, "Fiona", fiona_addr).await?;
431-
let bob_fiona_contact_id = Contact::create(&bob, "Fiona", fiona_addr).await?;
427+
let fiona = tcm.fiona().await;
428+
let alice_bob_contact_id = alice.add_or_lookup_contact_id(&bob).await;
429+
let alice_fiona_contact_id = alice.add_or_lookup_contact_id(&fiona).await;
430+
let bob_fiona_contact_id = bob.add_or_lookup_contact_id(&fiona).await;
432431
let alice_chat_id =
433432
create_group_chat(&alice, ProtectionStatus::Unprotected, "Group chat").await?;
434433
add_contact_to_chat(&alice, alice_chat_id, alice_bob_contact_id).await?;
@@ -470,8 +469,9 @@ async fn test_msg_with_implicit_member_removed() -> Result<()> {
470469

471470
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
472471
async fn test_modify_chat_multi_device() -> Result<()> {
473-
let a1 = TestContext::new_alice().await;
474-
let a2 = TestContext::new_alice().await;
472+
let mut tcm = TestContextManager::new();
473+
let a1 = tcm.alice().await;
474+
let a2 = tcm.alice().await;
475475
a1.set_config_bool(Config::BccSelf, true).await?;
476476

477477
// create group and sync it to the second device
@@ -495,8 +495,9 @@ async fn test_modify_chat_multi_device() -> Result<()> {
495495
assert_eq!(get_chat_contacts(&a2, a2_chat_id).await?.len(), 1);
496496

497497
// add a member to the group
498-
let bob = Contact::create(&a1, "", "[email protected]").await?;
499-
add_contact_to_chat(&a1, a1_chat_id, bob).await?;
498+
let bob = tcm.bob().await;
499+
let bob_id = a1.add_or_lookup_contact_id(&bob).await;
500+
add_contact_to_chat(&a1, a1_chat_id, bob_id).await?;
500501
let a1_msg = a1.get_last_msg().await;
501502

502503
let a2_msg = a2.recv_msg(&a1.pop_sent_msg().await).await;
@@ -524,7 +525,7 @@ async fn test_modify_chat_multi_device() -> Result<()> {
524525
assert_eq!(Chat::load_from_db(&a2, a2_chat_id).await?.name, "bar");
525526

526527
// remove member from group
527-
remove_contact_from_chat(&a1, a1_chat_id, bob).await?;
528+
remove_contact_from_chat(&a1, a1_chat_id, bob_id).await?;
528529
let a1_msg = a1.get_last_msg().await;
529530

530531
let a2_msg = a2.recv_msg(&a1.pop_sent_msg().await).await;
@@ -551,35 +552,40 @@ async fn test_modify_chat_multi_device() -> Result<()> {
551552
async fn test_modify_chat_disordered() -> Result<()> {
552553
let _n = TimeShiftFalsePositiveNote;
553554

554-
// Alice creates a group with Bob, Claire and Daisy and then removes Claire and Daisy
555+
let mut tcm = TestContextManager::new();
556+
557+
// Alice creates a group with Bob, Charlie and Fiona and then removes Charlie and Fiona
555558
// (time shift is needed as otherwise smeared time from Alice looks to Bob like messages from the future which are all set to "now" then)
556-
let alice = TestContext::new_alice().await;
559+
let alice = tcm.alice().await;
557560

558-
let bob_id = Contact::create(&alice, "", "[email protected]").await?;
559-
let claire_id = Contact::create(&alice, "", "[email protected]").await?;
560-
let daisy_id = Contact::create(&alice, "", "[email protected]").await?;
561+
let bob = tcm.bob().await;
562+
let bob_id = alice.add_or_lookup_contact_id(&bob).await;
563+
let charlie = tcm.charlie().await;
564+
let charlie_id = alice.add_or_lookup_contact_id(&charlie).await;
565+
let fiona = tcm.fiona().await;
566+
let fiona_id = alice.add_or_lookup_contact_id(&fiona).await;
561567

562568
let alice_chat_id = create_group_chat(&alice, ProtectionStatus::Unprotected, "foo").await?;
563569
send_text_msg(&alice, alice_chat_id, "populate".to_string()).await?;
564570

565571
add_contact_to_chat(&alice, alice_chat_id, bob_id).await?;
566572
let add1 = alice.pop_sent_msg().await;
567573

568-
add_contact_to_chat(&alice, alice_chat_id, claire_id).await?;
574+
add_contact_to_chat(&alice, alice_chat_id, charlie_id).await?;
569575
let add2 = alice.pop_sent_msg().await;
570576
SystemTime::shift(Duration::from_millis(1100));
571577

572-
add_contact_to_chat(&alice, alice_chat_id, daisy_id).await?;
578+
add_contact_to_chat(&alice, alice_chat_id, fiona_id).await?;
573579
let add3 = alice.pop_sent_msg().await;
574580
SystemTime::shift(Duration::from_millis(1100));
575581

576582
assert_eq!(get_chat_contacts(&alice, alice_chat_id).await?.len(), 4);
577583

578-
remove_contact_from_chat(&alice, alice_chat_id, claire_id).await?;
584+
remove_contact_from_chat(&alice, alice_chat_id, charlie_id).await?;
579585
let remove1 = alice.pop_sent_msg().await;
580586
SystemTime::shift(Duration::from_millis(1100));
581587

582-
remove_contact_from_chat(&alice, alice_chat_id, daisy_id).await?;
588+
remove_contact_from_chat(&alice, alice_chat_id, fiona_id).await?;
583589
let remove2 = alice.pop_sent_msg().await;
584590

585591
assert_eq!(get_chat_contacts(&alice, alice_chat_id).await?.len(), 2);
@@ -630,24 +636,27 @@ async fn test_modify_chat_lost() -> Result<()> {
630636
let mut tcm = TestContextManager::new();
631637
let alice = tcm.alice().await;
632638

633-
let bob_id = Contact::create(&alice, "", "[email protected]").await?;
634-
let claire_id = Contact::create(&alice, "", "[email protected]").await?;
635-
let daisy_id = Contact::create(&alice, "", "[email protected]").await?;
639+
let bob = tcm.bob().await;
640+
let bob_id = alice.add_or_lookup_contact_id(&bob).await;
641+
let charlie = tcm.charlie().await;
642+
let charlie_id = alice.add_or_lookup_contact_id(&charlie).await;
643+
let fiona = tcm.fiona().await;
644+
let fiona_id = alice.add_or_lookup_contact_id(&fiona).await;
636645

637646
let alice_chat_id = create_group_chat(&alice, ProtectionStatus::Unprotected, "foo").await?;
638647
add_contact_to_chat(&alice, alice_chat_id, bob_id).await?;
639-
add_contact_to_chat(&alice, alice_chat_id, claire_id).await?;
640-
add_contact_to_chat(&alice, alice_chat_id, daisy_id).await?;
648+
add_contact_to_chat(&alice, alice_chat_id, charlie_id).await?;
649+
add_contact_to_chat(&alice, alice_chat_id, fiona_id).await?;
641650

642651
send_text_msg(&alice, alice_chat_id, "populate".to_string()).await?;
643652
let add = alice.pop_sent_msg().await;
644653
SystemTime::shift(Duration::from_millis(1100));
645654

646-
remove_contact_from_chat(&alice, alice_chat_id, claire_id).await?;
655+
remove_contact_from_chat(&alice, alice_chat_id, charlie_id).await?;
647656
let remove1 = alice.pop_sent_msg().await;
648657
SystemTime::shift(Duration::from_millis(1100));
649658

650-
remove_contact_from_chat(&alice, alice_chat_id, daisy_id).await?;
659+
remove_contact_from_chat(&alice, alice_chat_id, fiona_id).await?;
651660
let remove2 = alice.pop_sent_msg().await;
652661

653662
let bob = tcm.bob().await;
@@ -2008,20 +2017,22 @@ async fn test_forward() -> Result<()> {
20082017

20092018
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
20102019
async fn test_forward_info_msg() -> Result<()> {
2011-
let t = TestContext::new_alice().await;
2020+
let mut tcm = TestContextManager::new();
2021+
let alice = &tcm.alice().await;
2022+
let bob = &tcm.bob().await;
20122023

2013-
let chat_id1 = create_group_chat(&t, ProtectionStatus::Unprotected, "a").await?;
2014-
send_text_msg(&t, chat_id1, "msg one".to_string()).await?;
2015-
let bob_id = Contact::create(&t, "", "bob@example.net").await?;
2016-
add_contact_to_chat(&t, chat_id1, bob_id).await?;
2017-
let msg1 = t.get_last_msg_in(chat_id1).await;
2024+
let chat_id1 = create_group_chat(alice, ProtectionStatus::Unprotected, "a").await?;
2025+
send_text_msg(alice, chat_id1, "msg one".to_string()).await?;
2026+
let bob_id = alice.add_or_lookup_contact_id(bob).await;
2027+
add_contact_to_chat(alice, chat_id1, bob_id).await?;
2028+
let msg1 = alice.get_last_msg_in(chat_id1).await;
20182029
assert!(msg1.is_info());
20192030
assert!(msg1.get_text().contains("[email protected]"));
20202031

2021-
let chat_id2 = ChatId::create_for_contact(&t, bob_id).await?;
2022-
assert_eq!(get_chat_msgs(&t, chat_id2).await?.len(), 0);
2023-
forward_msgs(&t, &[msg1.id], chat_id2).await?;
2024-
let msg2 = t.get_last_msg_in(chat_id2).await;
2032+
let chat_id2 = ChatId::create_for_contact(alice, bob_id).await?;
2033+
assert_eq!(get_chat_msgs(alice, chat_id2).await?.len(), 0);
2034+
forward_msgs(alice, &[msg1.id], chat_id2).await?;
2035+
let msg2 = alice.get_last_msg_in(chat_id2).await;
20252036
assert!(!msg2.is_info()); // forwarded info-messages lose their info-state
20262037
assert_eq!(msg2.get_info_type(), SystemMessage::Unknown);
20272038
assert_ne!(msg2.from_id, ContactId::INFO);
@@ -3328,9 +3339,10 @@ async fn test_add_member_bug() -> Result<()> {
33283339

33293340
let alice = &tcm.alice().await;
33303341
let bob = &tcm.bob().await;
3342+
let fiona = &tcm.fiona().await;
33313343

3332-
let alice_bob_contact_id = Contact::create(alice, "Bob", "[email protected]").await?;
3333-
let alice_fiona_contact_id = Contact::create(alice, "Fiona", "[email protected]").await?;
3344+
let alice_bob_contact_id = alice.add_or_lookup_contact_id(bob).await;
3345+
let alice_fiona_contact_id = alice.add_or_lookup_contact_id(fiona).await;
33343346

33353347
// Create a group.
33363348
let alice_chat_id =
@@ -3506,11 +3518,15 @@ async fn test_expire_past_members_after_60_days() -> Result<()> {
35063518
/// Test that past members are ordered by the timestamp of their removal.
35073519
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
35083520
async fn test_past_members_order() -> Result<()> {
3509-
let t = &TestContext::new_alice().await;
3521+
let mut tcm = TestContextManager::new();
3522+
let t = &tcm.alice().await;
35103523

3511-
let bob_contact_id = Contact::create(t, "Bob", "[email protected]").await?;
3512-
let charlie_contact_id = Contact::create(t, "Charlie", "[email protected]").await?;
3513-
let fiona_contact_id = Contact::create(t, "Fiona", "[email protected]").await?;
3524+
let bob = tcm.bob().await;
3525+
let bob_contact_id = t.add_or_lookup_contact_id(&bob).await;
3526+
let charlie = tcm.charlie().await;
3527+
let charlie_contact_id = t.add_or_lookup_contact_id(&charlie).await;
3528+
let fiona = tcm.fiona().await;
3529+
let fiona_contact_id = t.add_or_lookup_contact_id(&fiona).await;
35143530

35153531
let chat_id = create_group_chat(t, ProtectionStatus::Unprotected, "Group chat").await?;
35163532
add_contact_to_chat(t, chat_id, bob_contact_id).await?;

src/chatlist.rs

+19-20
Original file line numberDiff line numberDiff line change
@@ -492,19 +492,20 @@ mod tests {
492492

493493
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
494494
async fn test_try_load() {
495-
let t = TestContext::new_bob().await;
496-
let chat_id1 = create_group_chat(&t, ProtectionStatus::Unprotected, "a chat")
495+
let mut tcm = TestContextManager::new();
496+
let bob = &tcm.bob().await;
497+
let chat_id1 = create_group_chat(bob, ProtectionStatus::Unprotected, "a chat")
497498
.await
498499
.unwrap();
499-
let chat_id2 = create_group_chat(&t, ProtectionStatus::Unprotected, "b chat")
500+
let chat_id2 = create_group_chat(bob, ProtectionStatus::Unprotected, "b chat")
500501
.await
501502
.unwrap();
502-
let chat_id3 = create_group_chat(&t, ProtectionStatus::Unprotected, "c chat")
503+
let chat_id3 = create_group_chat(bob, ProtectionStatus::Unprotected, "c chat")
503504
.await
504505
.unwrap();
505506

506507
// check that the chatlist starts with the most recent message
507-
let chats = Chatlist::try_load(&t, 0, None, None).await.unwrap();
508+
let chats = Chatlist::try_load(bob, 0, None, None).await.unwrap();
508509
assert_eq!(chats.len(), 3);
509510
assert_eq!(chats.get_chat_id(0).unwrap(), chat_id3);
510511
assert_eq!(chats.get_chat_id(1).unwrap(), chat_id2);
@@ -520,51 +521,49 @@ mod tests {
520521
// 2s here.
521522
for chat_id in &[chat_id1, chat_id3, chat_id2] {
522523
let mut msg = Message::new_text("hello".to_string());
523-
chat_id.set_draft(&t, Some(&mut msg)).await.unwrap();
524+
chat_id.set_draft(bob, Some(&mut msg)).await.unwrap();
524525
}
525526

526-
let chats = Chatlist::try_load(&t, 0, None, None).await.unwrap();
527+
let chats = Chatlist::try_load(bob, 0, None, None).await.unwrap();
527528
assert_eq!(chats.get_chat_id(0).unwrap(), chat_id2);
528529

529530
// check chatlist query and archive functionality
530-
let chats = Chatlist::try_load(&t, 0, Some("b"), None).await.unwrap();
531+
let chats = Chatlist::try_load(bob, 0, Some("b"), None).await.unwrap();
531532
assert_eq!(chats.len(), 1);
532533

533534
// receive a message from alice
534-
let alice = TestContext::new_alice().await;
535-
let alice_chat_id = create_group_chat(&alice, ProtectionStatus::Unprotected, "alice chat")
535+
let alice = &tcm.alice().await;
536+
let alice_chat_id = create_group_chat(alice, ProtectionStatus::Unprotected, "alice chat")
536537
.await
537538
.unwrap();
538539
add_contact_to_chat(
539-
&alice,
540+
alice,
540541
alice_chat_id,
541-
Contact::create(&alice, "bob", "[email protected]")
542-
.await
543-
.unwrap(),
542+
alice.add_or_lookup_contact_id(bob).await,
544543
)
545544
.await
546545
.unwrap();
547-
send_text_msg(&alice, alice_chat_id, "hi".into())
546+
send_text_msg(alice, alice_chat_id, "hi".into())
548547
.await
549548
.unwrap();
550549
let sent_msg = alice.pop_sent_msg().await;
551550

552-
t.recv_msg(&sent_msg).await;
553-
let chats = Chatlist::try_load(&t, 0, Some("is:unread"), None)
551+
bob.recv_msg(&sent_msg).await;
552+
let chats = Chatlist::try_load(bob, 0, Some("is:unread"), None)
554553
.await
555554
.unwrap();
556555
assert_eq!(chats.len(), 1);
557556

558-
let chats = Chatlist::try_load(&t, DC_GCL_ARCHIVED_ONLY, None, None)
557+
let chats = Chatlist::try_load(bob, DC_GCL_ARCHIVED_ONLY, None, None)
559558
.await
560559
.unwrap();
561560
assert_eq!(chats.len(), 0);
562561

563562
chat_id1
564-
.set_visibility(&t, ChatVisibility::Archived)
563+
.set_visibility(bob, ChatVisibility::Archived)
565564
.await
566565
.ok();
567-
let chats = Chatlist::try_load(&t, DC_GCL_ARCHIVED_ONLY, None, None)
566+
let chats = Chatlist::try_load(bob, DC_GCL_ARCHIVED_ONLY, None, None)
568567
.await
569568
.unwrap();
570569
assert_eq!(chats.len(), 1);

src/receive_imf/receive_imf_tests.rs

+11-27
Original file line numberDiff line numberDiff line change
@@ -4210,26 +4210,19 @@ async fn test_dont_recreate_contacts_on_add_remove() -> Result<()> {
42104210
async fn test_delayed_removal_is_ignored() -> Result<()> {
42114211
let alice = TestContext::new_alice().await;
42124212
let bob = TestContext::new_bob().await;
4213+
let fiona = TestContext::new_fiona().await;
42134214
let chat_id = create_group_chat(&alice, ProtectionStatus::Unprotected, "Group").await?;
4214-
let alice_fiona = Contact::create(&alice, "fiona", "[email protected]").await?;
4215+
let alice_bob = alice.add_or_lookup_contact_id(&bob).await;
4216+
let alice_fiona = alice.add_or_lookup_contact_id(&fiona).await;
42154217
// create chat with three members
4216-
add_to_chat_contacts_table(
4217-
&alice,
4218-
time(),
4219-
chat_id,
4220-
&[
4221-
Contact::create(&alice, "bob", "[email protected]").await?,
4222-
alice_fiona,
4223-
],
4224-
)
4225-
.await?;
4218+
add_to_chat_contacts_table(&alice, time(), chat_id, &[alice_bob, alice_fiona]).await?;
42264219

42274220
send_text_msg(&alice, chat_id, "populate".to_string()).await?;
42284221
let bob_chat_id = bob.recv_msg(&alice.pop_sent_msg().await).await.chat_id;
42294222
bob_chat_id.accept(&bob).await?;
42304223

42314224
// Bob removes Fiona.
4232-
let bob_contact_fiona = Contact::create(&bob, "fiona", "[email protected]").await?;
4225+
let bob_contact_fiona = bob.add_or_lookup_contact_id(&fiona).await;
42334226
remove_contact_from_chat(&bob, bob_chat_id, bob_contact_fiona).await?;
42344227
let remove_msg = bob.pop_sent_msg().await;
42354228

@@ -4580,7 +4573,7 @@ async fn test_keep_member_list_if_possibly_nomember() -> Result<()> {
45804573
add_contact_to_chat(
45814574
&alice,
45824575
alice_chat_id,
4583-
Contact::create(&alice, "bob", &bob.get_config(Config::Addr).await?.unwrap()).await?,
4576+
alice.add_or_lookup_contact_id(&bob).await,
45844577
)
45854578
.await?;
45864579
send_text_msg(&alice, alice_chat_id, "populate".to_string()).await?;
@@ -4590,12 +4583,7 @@ async fn test_keep_member_list_if_possibly_nomember() -> Result<()> {
45904583
add_contact_to_chat(
45914584
&alice,
45924585
alice_chat_id,
4593-
Contact::create(
4594-
&alice,
4595-
"fiona",
4596-
&fiona.get_config(Config::Addr).await?.unwrap(),
4597-
)
4598-
.await?,
4586+
alice.add_or_lookup_contact_id(&fiona).await,
45994587
)
46004588
.await?;
46014589
let fiona_chat_id = fiona.recv_msg(&alice.pop_sent_msg().await).await.chat_id;
@@ -4607,12 +4595,7 @@ async fn test_keep_member_list_if_possibly_nomember() -> Result<()> {
46074595
// Bob missed the message adding fiona, but mustn't recreate the member list.
46084596
assert_eq!(get_chat_contacts(&bob, bob_chat_id).await?.len(), 2);
46094597
assert!(is_contact_in_chat(&bob, bob_chat_id, ContactId::SELF).await?);
4610-
let bob_alice_contact = Contact::create(
4611-
&bob,
4612-
"alice",
4613-
&alice.get_config(Config::Addr).await?.unwrap(),
4614-
)
4615-
.await?;
4598+
let bob_alice_contact = bob.add_or_lookup_contact_id(&alice).await;
46164599
assert!(is_contact_in_chat(&bob, bob_chat_id, bob_alice_contact).await?);
46174600
Ok(())
46184601
}
@@ -5041,8 +5024,9 @@ async fn test_unarchive_on_member_removal() -> Result<()> {
50415024
let mut tcm = TestContextManager::new();
50425025
let alice = &tcm.alice().await;
50435026
let bob = &tcm.bob().await;
5044-
let bob_id = Contact::create(alice, "", "[email protected]").await?;
5045-
let fiona_id = Contact::create(alice, "", "[email protected]").await?;
5027+
let fiona = &tcm.fiona().await;
5028+
let bob_id = alice.add_or_lookup_contact_id(bob).await;
5029+
let fiona_id = alice.add_or_lookup_contact_id(fiona).await;
50465030
let alice_chat_id = create_group_chat(alice, ProtectionStatus::Unprotected, "foos").await?;
50475031
add_contact_to_chat(alice, alice_chat_id, bob_id).await?;
50485032
add_contact_to_chat(alice, alice_chat_id, fiona_id).await?;
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
Group#Chat#10: Group [5 member(s)]
22
--------------------------------------------------------------------------------
3-
Msg#10: Me (Contact#Contact#Self): populate √
3+
Msg#10🔒: Me (Contact#Contact#Self): populate √
44
Msg#11: info (Contact#Contact#Info): Member [email protected] added. [NOTICED][INFO]
5-
Msg#12: info (Contact#Contact#Info): Member fiona (fiona@example.net) removed. [NOTICED][INFO]
6-
Msg#13: bob (Contact#Contact#11): Member [email protected] added by bob (bob@example.net). [FRESH][INFO]
7-
Msg#14: Me (Contact#Contact#Self): You added member fiona (fiona@example.net). [INFO] o
8-
Msg#15: bob (Contact#Contact#11): Member fiona (fiona@example.net) removed by bob (bob@example.net). [FRESH][INFO]
5+
Msg#12: info (Contact#Contact#Info): Member [email protected] removed. [NOTICED][INFO]
6+
Msg#13: (Contact#Contact#10): Member [email protected] added by [email protected]. [FRESH][INFO]
7+
Msg#14: Me (Contact#Contact#Self): You added member [email protected]. [INFO] o
8+
Msg#15🔒: (Contact#Contact#10): Member [email protected] removed by [email protected]. [FRESH][INFO]
99
--------------------------------------------------------------------------------

0 commit comments

Comments
 (0)