Added roster struct, create and destroy roster on connect/disconnect

This commit is contained in:
James Booth
2016-01-05 00:06:50 +00:00
parent 8e9bf08389
commit 055a5f71ce
18 changed files with 409 additions and 326 deletions

View File

@@ -11,50 +11,46 @@
void empty_list_when_none_added(void **state)
{
roster_init();
roster_create();
GSList *list = roster_get_contacts(ROSTER_ORD_NAME, TRUE);
assert_null(list);
roster_clear();
roster_free();
roster_destroy();
}
void contains_one_element(void **state)
{
roster_init();
roster_create();
roster_add("James", NULL, NULL, NULL, FALSE);
GSList *list = roster_get_contacts(ROSTER_ORD_NAME, TRUE);
assert_int_equal(1, g_slist_length(list));
roster_clear();
roster_free();
roster_destroy();
}
void first_element_correct(void **state)
{
roster_init();
roster_create();
roster_add("James", NULL, NULL, NULL, FALSE);
GSList *list = roster_get_contacts(ROSTER_ORD_NAME, TRUE);
PContact james = list->data;
assert_string_equal("James", p_contact_barejid(james));
roster_clear();
roster_free();
roster_destroy();
}
void contains_two_elements(void **state)
{
roster_init();
roster_create();
roster_add("James", NULL, NULL, NULL, FALSE);
roster_add("Dave", NULL, NULL, NULL, FALSE);
GSList *list = roster_get_contacts(ROSTER_ORD_NAME, TRUE);
assert_int_equal(2, g_slist_length(list));
roster_clear();
roster_free();
roster_destroy();
}
void first_and_second_elements_correct(void **state)
{
roster_init();
roster_create();
roster_add("James", NULL, NULL, NULL, FALSE);
roster_add("Dave", NULL, NULL, NULL, FALSE);
GSList *list = roster_get_contacts(ROSTER_ORD_NAME, TRUE);
@@ -64,26 +60,24 @@ void first_and_second_elements_correct(void **state)
assert_string_equal("Dave", p_contact_barejid(first));
assert_string_equal("James", p_contact_barejid(second));
roster_clear();
roster_free();
roster_destroy();
}
void contains_three_elements(void **state)
{
roster_init();
roster_create();
roster_add("James", NULL, NULL, NULL, FALSE);
roster_add("Bob", NULL, NULL, NULL, FALSE);
roster_add("Dave", NULL, NULL, NULL, FALSE);
GSList *list = roster_get_contacts(ROSTER_ORD_NAME, TRUE);
assert_int_equal(3, g_slist_length(list));
roster_clear();
roster_free();
roster_destroy();
}
void first_three_elements_correct(void **state)
{
roster_init();
roster_create();
roster_add("Bob", NULL, NULL, NULL, FALSE);
roster_add("Dave", NULL, NULL, NULL, FALSE);
roster_add("James", NULL, NULL, NULL, FALSE);
@@ -95,13 +89,12 @@ void first_three_elements_correct(void **state)
assert_string_equal("James", p_contact_barejid(james));
assert_string_equal("Dave", p_contact_barejid(dave));
assert_string_equal("Bob", p_contact_barejid(bob));
roster_clear();
roster_free();
roster_destroy();
}
void add_twice_at_beginning_adds_once(void **state)
{
roster_init();
roster_create();
roster_add("James", NULL, NULL, NULL, FALSE);
roster_add("James", NULL, NULL, NULL, FALSE);
roster_add("Dave", NULL, NULL, NULL, FALSE);
@@ -115,13 +108,12 @@ void add_twice_at_beginning_adds_once(void **state)
assert_string_equal("Bob", p_contact_barejid(first));
assert_string_equal("Dave", p_contact_barejid(second));
assert_string_equal("James", p_contact_barejid(third));
roster_clear();
roster_free();
roster_destroy();
}
void add_twice_in_middle_adds_once(void **state)
{
roster_init();
roster_create();
roster_add("James", NULL, NULL, NULL, FALSE);
roster_add("Dave", NULL, NULL, NULL, FALSE);
roster_add("James", NULL, NULL, NULL, FALSE);
@@ -135,13 +127,12 @@ void add_twice_in_middle_adds_once(void **state)
assert_string_equal("Bob", p_contact_barejid(first));
assert_string_equal("Dave", p_contact_barejid(second));
assert_string_equal("James", p_contact_barejid(third));
roster_clear();
roster_free();
roster_destroy();
}
void add_twice_at_end_adds_once(void **state)
{
roster_init();
roster_create();
roster_add("James", NULL, NULL, NULL, FALSE);
roster_add("Dave", NULL, NULL, NULL, FALSE);
roster_add("Bob", NULL, NULL, NULL, FALSE);
@@ -155,13 +146,12 @@ void add_twice_at_end_adds_once(void **state)
assert_string_equal("Bob", p_contact_barejid(first));
assert_string_equal("Dave", p_contact_barejid(second));
assert_string_equal("James", p_contact_barejid(third));
roster_clear();
roster_free();
roster_destroy();
}
void find_first_exists(void **state)
{
roster_init();
roster_create();
roster_add("James", NULL, NULL, NULL, FALSE);
roster_add("Dave", NULL, NULL, NULL, FALSE);
roster_add("Bob", NULL, NULL, NULL, FALSE);
@@ -172,13 +162,12 @@ void find_first_exists(void **state)
assert_string_equal("Bob", result);
free(result);
free(search);
roster_clear();
roster_free();
roster_destroy();
}
void find_second_exists(void **state)
{
roster_init();
roster_create();
roster_add("James", NULL, NULL, NULL, FALSE);
roster_add("Dave", NULL, NULL, NULL, FALSE);
roster_add("Bob", NULL, NULL, NULL, FALSE);
@@ -186,13 +175,12 @@ void find_second_exists(void **state)
char *result = roster_contact_autocomplete("Dav");
assert_string_equal("Dave", result);
free(result);
roster_clear();
roster_free();
roster_destroy();
}
void find_third_exists(void **state)
{
roster_init();
roster_create();
roster_add("James", NULL, NULL, NULL, FALSE);
roster_add("Dave", NULL, NULL, NULL, FALSE);
roster_add("Bob", NULL, NULL, NULL, FALSE);
@@ -200,35 +188,32 @@ void find_third_exists(void **state)
char *result = roster_contact_autocomplete("Ja");
assert_string_equal("James", result);
free(result);
roster_clear();
roster_free();
roster_destroy();
}
void find_returns_null(void **state)
{
roster_init();
roster_create();
roster_add("James", NULL, NULL, NULL, FALSE);
roster_add("Dave", NULL, NULL, NULL, FALSE);
roster_add("Bob", NULL, NULL, NULL, FALSE);
char *result = roster_contact_autocomplete("Mike");
assert_null(result);
roster_clear();
roster_free();
roster_destroy();
}
void find_on_empty_returns_null(void **state)
{
roster_init();
roster_create();
char *result = roster_contact_autocomplete("James");
assert_null(result);
roster_clear();
roster_free();
roster_destroy();
}
void find_twice_returns_second_when_two_match(void **state)
{
roster_init();
roster_create();
roster_add("James", NULL, NULL, NULL, FALSE);
roster_add("Jamie", NULL, NULL, NULL, FALSE);
roster_add("Bob", NULL, NULL, NULL, FALSE);
@@ -238,13 +223,12 @@ void find_twice_returns_second_when_two_match(void **state)
assert_string_equal("Jamie", result2);
free(result1);
free(result2);
roster_clear();
roster_free();
roster_destroy();
}
void find_five_times_finds_fifth(void **state)
{
roster_init();
roster_create();
roster_add("Jama", NULL, NULL, NULL, FALSE);
roster_add("Jamb", NULL, NULL, NULL, FALSE);
roster_add("Mike", NULL, NULL, NULL, FALSE);
@@ -267,13 +251,12 @@ void find_five_times_finds_fifth(void **state)
free(result3);
free(result4);
free(result5);
roster_clear();
roster_free();
roster_destroy();
}
void find_twice_returns_first_when_two_match_and_reset(void **state)
{
roster_init();
roster_create();
roster_add("James", NULL, NULL, NULL, FALSE);
roster_add("Jamie", NULL, NULL, NULL, FALSE);
roster_add("Bob", NULL, NULL, NULL, FALSE);
@@ -284,26 +267,24 @@ void find_twice_returns_first_when_two_match_and_reset(void **state)
assert_string_equal("James", result2);
free(result1);
free(result2);
roster_clear();
roster_free();
roster_destroy();
}
void add_contact_with_no_group(void **state)
{
roster_init();
roster_create();
roster_add("person@server.org", NULL, NULL, NULL, FALSE);
GSList *groups_res = roster_get_groups();
assert_int_equal(g_slist_length(groups_res), 0);
g_slist_free_full(groups_res, g_free);
roster_clear();
roster_free();
roster_destroy();
}
void add_contact_with_group(void **state)
{
roster_init();
roster_create();
GSList *groups = NULL;
groups = g_slist_append(groups, strdup("friends"));
@@ -317,13 +298,12 @@ void add_contact_with_group(void **state)
assert_string_equal(found->data, "friends");
g_slist_free_full(groups_res, g_free);
roster_clear();
roster_free();
roster_destroy();
}
void add_contact_with_two_groups(void **state)
{
roster_init();
roster_create();
GSList *groups = NULL;
groups = g_slist_append(groups, strdup("friends"));
@@ -341,13 +321,12 @@ void add_contact_with_two_groups(void **state)
assert_string_equal(found->data, "work");
g_slist_free_full(groups_res, g_free);
roster_clear();
roster_free();
roster_destroy();
}
void add_contact_with_three_groups(void **state)
{
roster_init();
roster_create();
GSList *groups = NULL;
groups = g_slist_append(groups, strdup("friends"));
@@ -369,13 +348,12 @@ void add_contact_with_three_groups(void **state)
assert_string_equal(found->data, "stuff");
g_slist_free_full(groups_res, g_free);
roster_clear();
roster_free();
roster_destroy();
}
void add_contact_with_three_groups_update_adding_two(void **state)
{
roster_init();
roster_create();
GSList *groups1 = NULL;
groups1 = g_slist_append(groups1, strdup("friends"));
@@ -411,13 +389,12 @@ void add_contact_with_three_groups_update_adding_two(void **state)
assert_string_equal(found->data, "people");
g_slist_free_full(groups_res, g_free);
roster_clear();
roster_free();
roster_destroy();
}
void add_contact_with_three_groups_update_removing_one(void **state)
{
roster_init();
roster_create();
GSList *groups1 = NULL;
groups1 = g_slist_append(groups1, strdup("friends"));
@@ -441,13 +418,12 @@ void add_contact_with_three_groups_update_removing_one(void **state)
assert_string_equal(found->data, "stuff");
g_slist_free_full(groups_res, g_free);
roster_clear();
roster_free();
roster_destroy();
}
void add_contact_with_three_groups_update_removing_two(void **state)
{
roster_init();
roster_create();
GSList *groups1 = NULL;
groups1 = g_slist_append(groups1, strdup("friends"));
@@ -467,13 +443,12 @@ void add_contact_with_three_groups_update_removing_two(void **state)
assert_string_equal(found->data, "stuff");
g_slist_free_full(groups_res, g_free);
roster_clear();
roster_free();
roster_destroy();
}
void add_contact_with_three_groups_update_removing_three(void **state)
{
roster_init();
roster_create();
GSList *groups1 = NULL;
groups1 = g_slist_append(groups1, strdup("friends"));
@@ -487,13 +462,12 @@ void add_contact_with_three_groups_update_removing_three(void **state)
assert_int_equal(g_slist_length(groups_res), 0);
g_slist_free_full(groups_res, g_free);
roster_clear();
roster_free();
roster_destroy();
}
void add_contact_with_three_groups_update_two_new(void **state)
{
roster_init();
roster_create();
GSList *groups1 = NULL;
groups1 = g_slist_append(groups1, strdup("friends"));
@@ -515,13 +489,12 @@ void add_contact_with_three_groups_update_two_new(void **state)
assert_true(found != NULL);
g_slist_free_full(groups_res, g_free);
roster_clear();
roster_free();
roster_destroy();
}
void add_remove_contact_groups(void **state)
{
roster_init();
roster_create();
GSList *groups1 = NULL;
groups1 = g_slist_append(groups1, strdup("friends"));
@@ -535,13 +508,12 @@ void add_remove_contact_groups(void **state)
assert_int_equal(g_slist_length(groups_res), 0);
g_slist_free_full(groups_res, g_free);
roster_clear();
roster_free();
roster_destroy();
}
void add_contacts_with_different_groups(void **state)
{
roster_init();
roster_create();
GSList *groups1 = NULL;
groups1 = g_slist_append(groups1, strdup("friends"));
@@ -569,13 +541,12 @@ void add_contacts_with_different_groups(void **state)
assert_true(found != NULL);
g_slist_free_full(groups_res, g_free);
roster_clear();
roster_free();
roster_destroy();
}
void add_contacts_with_same_groups(void **state)
{
roster_init();
roster_create();
GSList *groups1 = NULL;
groups1 = g_slist_append(groups1, strdup("friends"));
@@ -600,13 +571,12 @@ void add_contacts_with_same_groups(void **state)
assert_true(found != NULL);
g_slist_free_full(groups_res, g_free);
roster_clear();
roster_free();
roster_destroy();
}
void add_contacts_with_overlapping_groups(void **state)
{
roster_init();
roster_create();
GSList *groups1 = NULL;
groups1 = g_slist_append(groups1, strdup("friends"));
@@ -633,13 +603,12 @@ void add_contacts_with_overlapping_groups(void **state)
assert_true(found != NULL);
g_slist_free_full(groups_res, g_free);
roster_clear();
roster_free();
roster_destroy();
}
void remove_contact_with_remaining_in_group(void **state)
{
roster_init();
roster_create();
GSList *groups1 = NULL;
groups1 = g_slist_append(groups1, strdup("friends"));
@@ -666,6 +635,5 @@ void remove_contact_with_remaining_in_group(void **state)
assert_true(found != NULL);
g_slist_free_full(groups_res, g_free);
roster_clear();
roster_free();
roster_destroy();
}