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