1 /**
2 * @file test/contact.c Baresip selftest -- contacts
3 *
4 * Copyright (C) 2010 - 2016 Creytiv.com
5 */
6 #include <string.h>
7 #include <re.h>
8 #include <baresip.h>
9 #include "test.h"
10
11
test_contact(void)12 int test_contact(void)
13 {
14 struct contacts contacts;
15 struct contact *c;
16 const char *addr = "sip:neil@young.com";
17 struct pl pl_addr;
18 int err;
19
20 err = contact_init(&contacts);
21 ASSERT_EQ(0, err);
22
23 /* Verify that we have no contacts */
24
25 ASSERT_EQ(0, list_count(contact_list(&contacts)));
26
27 c = contact_find(&contacts, "sip:null@void.com");
28 ASSERT_TRUE(c == NULL);
29
30 /* Add one contact, list should have one entry and
31 find should return the added contact */
32
33 pl_set_str(&pl_addr, addr);
34 err = contact_add(&contacts, &c, &pl_addr);
35 ASSERT_EQ(0, err);
36 ASSERT_TRUE(c != NULL);
37
38 ASSERT_EQ(1, list_count(contact_list(&contacts)));
39
40 c = contact_find(&contacts, addr);
41 ASSERT_TRUE(c != NULL);
42
43 ASSERT_STREQ(addr, contact_str(c));
44
45 /* Delete 1 contact, verify that list is empty */
46
47 mem_deref(c);
48
49 ASSERT_EQ(0, list_count(contact_list(&contacts)));
50
51 out:
52 contact_close(&contacts);
53
54 return err;
55 }
56