Skip to content

Commit 7daba40

Browse files
committed
test: use vCards to create contacts in more Rust tests
1 parent a8f8d34 commit 7daba40

File tree

5 files changed

+115
-97
lines changed

5 files changed

+115
-97
lines changed

src/chat/chat_tests.rs

+41-61
Original file line numberDiff line numberDiff line change
@@ -298,9 +298,11 @@ async fn test_member_add_remove() -> Result<()> {
298298

299299
let alice = tcm.alice().await;
300300
let bob = tcm.bob().await;
301+
let fiona = tcm.fiona().await;
301302

302303
// Create contact for Bob on the Alice side with name "robert".
303-
let alice_bob_contact_id = Contact::create(&alice, "robert", "[email protected]").await?;
304+
let alice_bob_contact_id = alice.add_or_lookup_contact_id(&bob).await;
305+
alice_bob_contact_id.set_name(&alice, "robert").await?;
304306

305307
// Set Bob authname to "Bob" and send it to Alice.
306308
bob.set_config(Config::Displayname, Some("Bob")).await?;
@@ -320,19 +322,15 @@ async fn test_member_add_remove() -> Result<()> {
320322
// Create and promote a group.
321323
let alice_chat_id =
322324
create_group_chat(&alice, ProtectionStatus::Unprotected, "Group chat").await?;
323-
let alice_fiona_contact_id = Contact::create(&alice, "Fiona", "fiona@example.net").await?;
325+
let alice_fiona_contact_id = alice.add_or_lookup_contact_id(&fiona).await;
324326
add_contact_to_chat(&alice, alice_chat_id, alice_fiona_contact_id).await?;
325-
let sent = alice
327+
alice
326328
.send_text(alice_chat_id, "Hi! I created a group.")
327329
.await;
328-
assert!(sent.payload.contains("Hi! I created a group."));
329330

330331
// Alice adds Bob to the chat.
331332
add_contact_to_chat(&alice, alice_chat_id, alice_bob_contact_id).await?;
332333
let sent = alice.pop_sent_msg().await;
333-
assert!(sent
334-
.payload
335-
.contains("I added member Bob ([email protected])."));
336334
// Locally set name "robert" should not leak.
337335
assert!(!sent.payload.contains("robert"));
338336
assert_eq!(
@@ -343,9 +341,6 @@ async fn test_member_add_remove() -> Result<()> {
343341
// Alice removes Bob from the chat.
344342
remove_contact_from_chat(&alice, alice_chat_id, alice_bob_contact_id).await?;
345343
let sent = alice.pop_sent_msg().await;
346-
assert!(sent
347-
.payload
348-
.contains("I removed member Bob ([email protected])."));
349344
assert!(!sent.payload.contains("robert"));
350345
assert_eq!(
351346
sent.load_from_db().await.get_text(),
@@ -355,7 +350,6 @@ async fn test_member_add_remove() -> Result<()> {
355350
// Alice leaves the chat.
356351
remove_contact_from_chat(&alice, alice_chat_id, ContactId::SELF).await?;
357352
let sent = alice.pop_sent_msg().await;
358-
assert!(sent.payload.contains("I left the group."));
359353
assert_eq!(sent.load_from_db().await.get_text(), "You left the group.");
360354

361355
Ok(())
@@ -368,10 +362,12 @@ async fn test_parallel_member_remove() -> Result<()> {
368362

369363
let alice = tcm.alice().await;
370364
let bob = tcm.bob().await;
365+
let charlie = tcm.charlie().await;
366+
let fiona = tcm.fiona().await;
371367

372-
let alice_bob_contact_id = Contact::create(&alice, "Bob", "bob@example.net").await?;
373-
let alice_fiona_contact_id = Contact::create(&alice, "Fiona", "fiona@example.net").await?;
374-
let alice_claire_contact_id = Contact::create(&alice, "Claire", "[email protected]").await?;
368+
let alice_bob_contact_id = alice.add_or_lookup_contact_id(&bob).await;
369+
let alice_fiona_contact_id = alice.add_or_lookup_contact_id(&fiona).await;
370+
let alice_charlie_contact_id = alice.add_or_lookup_contact_id(&charlie).await;
375371

376372
// Create and promote a group.
377373
let alice_chat_id =
@@ -387,7 +383,7 @@ async fn test_parallel_member_remove() -> Result<()> {
387383
bob_chat_id.accept(&bob).await?;
388384

389385
// Alice adds Claire to the chat.
390-
add_contact_to_chat(&alice, alice_chat_id, alice_claire_contact_id).await?;
386+
add_contact_to_chat(&alice, alice_chat_id, alice_charlie_contact_id).await?;
391387
let alice_sent_add_msg = alice.pop_sent_msg().await;
392388

393389
// Bob leaves the chat.
@@ -680,7 +676,7 @@ async fn test_leave_group() -> Result<()> {
680676

681677
// Create group chat with Bob.
682678
let alice_chat_id = create_group_chat(&alice, ProtectionStatus::Unprotected, "foo").await?;
683-
let bob_contact = Contact::create(&alice, "", "bob@example.net").await?;
679+
let bob_contact = alice.add_or_lookup_contact(&bob).await.id;
684680
add_contact_to_chat(&alice, alice_chat_id, bob_contact).await?;
685681

686682
// Alice sends first message to group.
@@ -2264,11 +2260,13 @@ async fn test_save_from_saved_to_saved_failing() -> Result<()> {
22642260
async fn test_resend_own_message() -> Result<()> {
22652261
// Alice creates group with Bob and sends an initial message
22662262
let alice = TestContext::new_alice().await;
2263+
let bob = TestContext::new_bob().await;
2264+
let fiona = TestContext::new_fiona().await;
22672265
let alice_grp = create_group_chat(&alice, ProtectionStatus::Unprotected, "grp").await?;
22682266
add_contact_to_chat(
22692267
&alice,
22702268
alice_grp,
2271-
Contact::create(&alice, "", "bob@example.net").await?,
2269+
alice.add_or_lookup_contact_id(&bob).await,
22722270
)
22732271
.await?;
22742272
let sent1 = alice.send_text(alice_grp, "alice->bob").await;
@@ -2277,7 +2275,7 @@ async fn test_resend_own_message() -> Result<()> {
22772275
add_contact_to_chat(
22782276
&alice,
22792277
alice_grp,
2280-
Contact::create(&alice, "", "[email protected]").await?,
2278+
alice.add_or_lookup_contact_id(&fiona).await,
22812279
)
22822280
.await?;
22832281
let sent2 = alice.pop_sent_msg().await;
@@ -2321,15 +2319,13 @@ async fn test_resend_own_message() -> Result<()> {
23212319
assert_eq!(get_chat_contacts(&bob, msg.chat_id).await?.len(), 3);
23222320
assert_eq!(get_chat_msgs(&bob, msg.chat_id).await?.len(), 2);
23232321

2324-
// Claire does not receive the first message, however, due to resending, she has a similar view as Alice and Bob
2325-
let claire = TestContext::new().await;
2326-
claire.configure_addr("[email protected]").await;
2327-
claire.recv_msg(&sent2).await;
2328-
let msg = claire.recv_msg(&sent3).await;
2322+
// Fiona does not receive the first message, however, due to resending, she has a similar view as Alice and Bob
2323+
fiona.recv_msg(&sent2).await;
2324+
let msg = fiona.recv_msg(&sent3).await;
23292325
assert_eq!(msg.get_text(), "alice->bob");
2330-
assert_eq!(get_chat_contacts(&claire, msg.chat_id).await?.len(), 3);
2331-
assert_eq!(get_chat_msgs(&claire, msg.chat_id).await?.len(), 2);
2332-
let msg_from = Contact::get_by_id(&claire, msg.get_from_id()).await?;
2326+
assert_eq!(get_chat_contacts(&fiona, msg.chat_id).await?.len(), 3);
2327+
assert_eq!(get_chat_msgs(&fiona, msg.chat_id).await?.len(), 2);
2328+
let msg_from = Contact::get_by_id(&fiona, msg.get_from_id()).await?;
23332329
assert_eq!(msg_from.get_addr(), "[email protected]");
23342330
assert!(sent1_ts_sent < msg.timestamp_sent);
23352331

@@ -2813,12 +2809,7 @@ async fn test_blob_renaming() -> Result<()> {
28132809
let alice = TestContext::new_alice().await;
28142810
let bob = TestContext::new_bob().await;
28152811
let chat_id = create_group_chat(&alice, ProtectionStatus::Unprotected, "Group").await?;
2816-
add_contact_to_chat(
2817-
&alice,
2818-
chat_id,
2819-
Contact::create(&alice, "bob", "[email protected]").await?,
2820-
)
2821-
.await?;
2812+
add_contact_to_chat(&alice, chat_id, alice.add_or_lookup_contact_id(&bob).await).await?;
28222813
let file = alice.get_blobdir().join("harmless_file.\u{202e}txt.exe");
28232814
fs::write(&file, "aaa").await?;
28242815
let mut msg = Message::new(Viewtype::File);
@@ -2850,7 +2841,7 @@ async fn test_sync_blocked() -> Result<()> {
28502841
let sent_msg = bob.send_text(ba_chat.id, "hi").await;
28512842
let a0b_chat_id = alice0.recv_msg(&sent_msg).await.chat_id;
28522843
alice1.recv_msg(&sent_msg).await;
2853-
let a0b_contact_id = alice0.add_or_lookup_contact(&bob).await.id;
2844+
let a0b_contact_id = alice0.add_or_lookup_contact_id(&bob).await;
28542845

28552846
assert_eq!(alice1.get_chat(&bob).await.blocked, Blocked::Request);
28562847
a0b_chat_id.accept(alice0).await?;
@@ -3351,7 +3342,8 @@ async fn test_past_members() -> Result<()> {
33513342
let mut tcm = TestContextManager::new();
33523343

33533344
let alice = &tcm.alice().await;
3354-
let alice_fiona_contact_id = Contact::create(alice, "Fiona", "[email protected]").await?;
3345+
let fiona = &tcm.fiona().await;
3346+
let alice_fiona_contact_id = alice.add_or_lookup_contact_id(fiona).await;
33553347

33563348
let alice_chat_id =
33573349
create_group_chat(alice, ProtectionStatus::Unprotected, "Group chat").await?;
@@ -3363,8 +3355,7 @@ async fn test_past_members() -> Result<()> {
33633355
assert_eq!(get_past_chat_contacts(alice, alice_chat_id).await?.len(), 1);
33643356

33653357
let bob = &tcm.bob().await;
3366-
let bob_addr = bob.get_config(Config::Addr).await?.unwrap();
3367-
let alice_bob_contact_id = Contact::create(alice, "Bob", &bob_addr).await?;
3358+
let alice_bob_contact_id = alice.add_or_lookup_contact_id(bob).await;
33683359
add_contact_to_chat(alice, alice_chat_id, alice_bob_contact_id).await?;
33693360

33703361
let add_message = alice.pop_sent_msg().await;
@@ -3383,8 +3374,7 @@ async fn non_member_cannot_modify_member_list() -> Result<()> {
33833374
let alice = &tcm.alice().await;
33843375
let bob = &tcm.bob().await;
33853376

3386-
let bob_addr = bob.get_config(Config::Addr).await?.unwrap();
3387-
let alice_bob_contact_id = Contact::create(alice, "Bob", &bob_addr).await?;
3377+
let alice_bob_contact_id = alice.add_or_lookup_contact_id(bob).await;
33883378

33893379
let alice_chat_id =
33903380
create_group_chat(alice, ProtectionStatus::Unprotected, "Group chat").await?;
@@ -3396,7 +3386,8 @@ async fn non_member_cannot_modify_member_list() -> Result<()> {
33963386
let bob_chat_id = bob_received_msg.get_chat_id();
33973387
bob_chat_id.accept(bob).await?;
33983388

3399-
let bob_fiona_contact_id = Contact::create(bob, "Fiona", "[email protected]").await?;
3389+
let fiona = &tcm.fiona().await;
3390+
let bob_fiona_contact_id = bob.add_or_lookup_contact_id(fiona).await;
34003391

34013392
// Alice removes Bob and Bob adds Fiona at the same time.
34023393
remove_contact_from_chat(alice, alice_chat_id, alice_bob_contact_id).await?;
@@ -3418,11 +3409,10 @@ async fn unpromoted_group_no_tombstones() -> Result<()> {
34183409

34193410
let alice = &tcm.alice().await;
34203411
let bob = &tcm.bob().await;
3412+
let fiona = &tcm.fiona().await;
34213413

3422-
let bob_addr = bob.get_config(Config::Addr).await?.unwrap();
3423-
let alice_bob_contact_id = Contact::create(alice, "Bob", &bob_addr).await?;
3424-
let fiona_addr = "[email protected]";
3425-
let alice_fiona_contact_id = Contact::create(alice, "Fiona", fiona_addr).await?;
3414+
let alice_bob_contact_id = alice.add_or_lookup_contact_id(bob).await;
3415+
let alice_fiona_contact_id = alice.add_or_lookup_contact_id(fiona).await;
34263416

34273417
let alice_chat_id =
34283418
create_group_chat(alice, ProtectionStatus::Unprotected, "Group chat").await?;
@@ -3438,10 +3428,6 @@ async fn unpromoted_group_no_tombstones() -> Result<()> {
34383428
assert_eq!(get_past_chat_contacts(alice, alice_chat_id).await?.len(), 0);
34393429

34403430
let sent = alice.send_text(alice_chat_id, "Hello group!").await;
3441-
let payload = sent.payload();
3442-
assert_eq!(payload.contains("Hello group!"), true);
3443-
assert_eq!(payload.contains(&bob_addr), true);
3444-
assert_eq!(payload.contains(fiona_addr), false);
34453431

34463432
let bob_msg = bob.recv_msg(&sent).await;
34473433
let bob_chat_id = bob_msg.chat_id;
@@ -3457,8 +3443,8 @@ async fn test_expire_past_members_after_60_days() -> Result<()> {
34573443
let mut tcm = TestContextManager::new();
34583444

34593445
let alice = &tcm.alice().await;
3460-
let fiona_addr = "fiona@example.net";
3461-
let alice_fiona_contact_id = Contact::create(alice, "Fiona", fiona_addr).await?;
3446+
let fiona = &tcm.fiona().await;
3447+
let alice_fiona_contact_id = alice.add_or_lookup_contact_id(fiona).await;
34623448

34633449
let alice_chat_id =
34643450
create_group_chat(alice, ProtectionStatus::Unprotected, "Group chat").await?;
@@ -3473,12 +3459,10 @@ async fn test_expire_past_members_after_60_days() -> Result<()> {
34733459
assert_eq!(get_past_chat_contacts(alice, alice_chat_id).await?.len(), 0);
34743460

34753461
let bob = &tcm.bob().await;
3476-
let bob_addr = bob.get_config(Config::Addr).await?.unwrap();
3477-
let alice_bob_contact_id = Contact::create(alice, "Bob", &bob_addr).await?;
3462+
let alice_bob_contact_id = alice.add_or_lookup_contact_id(bob).await;
34783463
add_contact_to_chat(alice, alice_chat_id, alice_bob_contact_id).await?;
34793464

34803465
let add_message = alice.pop_sent_msg().await;
3481-
assert_eq!(add_message.payload.contains(fiona_addr), false);
34823466
let bob_add_message = bob.recv_msg(&add_message).await;
34833467
let bob_chat_id = bob_add_message.chat_id;
34843468
assert_eq!(get_chat_contacts(bob, bob_chat_id).await?.len(), 2);
@@ -3552,13 +3536,11 @@ async fn test_restore_backup_after_60_days() -> Result<()> {
35523536

35533537
let alice = &tcm.alice().await;
35543538
let bob = &tcm.bob().await;
3539+
let charlie = &tcm.charlie().await;
35553540
let fiona = &tcm.fiona().await;
35563541

3557-
let bob_addr = bob.get_config(Config::Addr).await?.unwrap();
3558-
let alice_bob_contact_id = Contact::create(alice, "Bob", &bob_addr).await?;
3559-
3560-
let charlie_addr = "[email protected]";
3561-
let alice_charlie_contact_id = Contact::create(alice, "Charlie", charlie_addr).await?;
3542+
let alice_bob_contact_id = alice.add_or_lookup_contact_id(bob).await;
3543+
let alice_charlie_contact_id = alice.add_or_lookup_contact_id(charlie).await;
35623544

35633545
let alice_chat_id =
35643546
create_group_chat(alice, ProtectionStatus::Unprotected, "Group chat").await?;
@@ -3580,7 +3562,6 @@ async fn test_restore_backup_after_60_days() -> Result<()> {
35803562
assert_eq!(get_past_chat_contacts(alice, alice_chat_id).await?.len(), 1);
35813563

35823564
let remove_message = alice.pop_sent_msg().await;
3583-
assert_eq!(remove_message.payload.contains(charlie_addr), true);
35843565
bob.recv_msg(&remove_message).await;
35853566

35863567
// 60 days pass.
@@ -3589,8 +3570,7 @@ async fn test_restore_backup_after_60_days() -> Result<()> {
35893570
assert_eq!(get_past_chat_contacts(alice, alice_chat_id).await?.len(), 0);
35903571

35913572
// Bob adds Fiona to the chat.
3592-
let fiona_addr = fiona.get_config(Config::Addr).await?.unwrap();
3593-
let bob_fiona_contact_id = Contact::create(bob, "Fiona", &fiona_addr).await?;
3573+
let bob_fiona_contact_id = bob.add_or_lookup_contact_id(fiona).await;
35943574
add_contact_to_chat(bob, bob_chat_id, bob_fiona_contact_id).await?;
35953575

35963576
let add_message = bob.pop_sent_msg().await;
@@ -3654,7 +3634,7 @@ async fn test_restore_backup_after_60_days() -> Result<()> {
36543634
// Charlie is not part of the chat.
36553635
assert_eq!(get_chat_contacts(bob, bob_chat_id).await?.len(), 3);
36563636
assert_eq!(get_past_chat_contacts(bob, bob_chat_id).await?.len(), 0);
3657-
let bob_charlie_contact_id = Contact::create(bob, "Charlie", charlie_addr).await?;
3637+
let bob_charlie_contact_id = bob.add_or_lookup_contact_id(charlie).await;
36583638
assert!(!is_contact_in_chat(bob, bob_chat_id, bob_charlie_contact_id).await?);
36593639

36603640
assert_eq!(get_chat_contacts(fiona, fiona_chat_id).await?.len(), 3);

0 commit comments

Comments
 (0)