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

@@ -17,7 +17,7 @@
void clears_chat_sessions(void **state)
{
chat_sessions_init();
roster_init();
roster_create();
chat_session_recipient_active("bob@server.org", "laptop", FALSE);
chat_session_recipient_active("mike@server.org", "work", FALSE);

View File

@@ -53,7 +53,7 @@ void cmd_roster_shows_roster_when_no_args(void **state)
will_return(jabber_get_connection_status, JABBER_CONNECTED);
roster_init();
roster_create();
roster_add("bob@server.org", "bob", NULL, "both", FALSE);
GSList *roster = roster_get_contacts(ROSTER_ORD_NAME, TRUE);
@@ -62,7 +62,7 @@ void cmd_roster_shows_roster_when_no_args(void **state)
gboolean result = cmd_roster(NULL, CMD_ROSTER, args);
assert_true(result);
roster_free();
roster_destroy();
}
void cmd_roster_add_shows_message_when_no_jid(void **state)
@@ -145,7 +145,7 @@ void cmd_roster_nick_shows_message_when_no_contact_exists(void **state)
{
gchar *args[] = { "nick", "bob@server.org", "bobster", NULL };
roster_init();
roster_create();
will_return(jabber_get_connection_status, JABBER_CONNECTED);
@@ -154,7 +154,7 @@ void cmd_roster_nick_shows_message_when_no_contact_exists(void **state)
gboolean result = cmd_roster(NULL, CMD_ROSTER, args);
assert_true(result);
roster_free();
roster_destroy();
}
void cmd_roster_nick_sends_name_change_request(void **state)
@@ -163,9 +163,9 @@ void cmd_roster_nick_sends_name_change_request(void **state)
char *nick = "bobster";
gchar *args[] = { "nick", jid, nick, NULL };
roster_init();
roster_create();
GSList *groups = NULL;
groups = g_slist_append(groups, "group1");
groups = g_slist_append(groups, strdup("group1"));
roster_add(jid, "bob", groups, "both", FALSE);
will_return(jabber_get_connection_status, JABBER_CONNECTED);
@@ -181,7 +181,7 @@ void cmd_roster_nick_sends_name_change_request(void **state)
PContact contact = roster_get_contact(jid);
assert_string_equal(p_contact_name(contact), nick);
roster_free();
roster_destroy();
}
void cmd_roster_clearnick_shows_message_when_no_jid(void **state)
@@ -200,7 +200,7 @@ void cmd_roster_clearnick_shows_message_when_no_contact_exists(void **state)
{
gchar *args[] = { "clearnick", "bob@server.org", NULL };
roster_init();
roster_create();
will_return(jabber_get_connection_status, JABBER_CONNECTED);
@@ -209,7 +209,7 @@ void cmd_roster_clearnick_shows_message_when_no_contact_exists(void **state)
gboolean result = cmd_roster(NULL, CMD_ROSTER, args);
assert_true(result);
roster_free();
roster_destroy();
}
void cmd_roster_clearnick_sends_name_change_request_with_empty_nick(void **state)
@@ -217,9 +217,9 @@ void cmd_roster_clearnick_sends_name_change_request_with_empty_nick(void **state
char *jid = "bob@server.org";
gchar *args[] = { "clearnick", jid, NULL };
roster_init();
roster_create();
GSList *groups = NULL;
groups = g_slist_append(groups, "group1");
groups = g_slist_append(groups, strdup("group1"));
roster_add(jid, "bob", groups, "both", FALSE);
will_return(jabber_get_connection_status, JABBER_CONNECTED);
@@ -236,5 +236,5 @@ void cmd_roster_clearnick_sends_name_change_request_with_empty_nick(void **state
PContact contact = roster_get_contact(jid);
assert_null(p_contact_name(contact));
roster_free();
roster_destroy();
}

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();
}

View File

@@ -17,7 +17,7 @@
void console_shows_online_presence_when_set_online(void **state)
{
prefs_set_string(PREF_STATUSES_CONSOLE, "online");
roster_init();
roster_create();
char *barejid = "test1@server";
roster_add(barejid, "bob", NULL, "both", FALSE);
Resource *resource = resource_new("resource", RESOURCE_ONLINE, NULL, 10);
@@ -28,13 +28,13 @@ void console_shows_online_presence_when_set_online(void **state)
sv_ev_contact_online(barejid, resource, NULL, NULL);
roster_clear();
roster_destroy();
}
void console_shows_online_presence_when_set_all(void **state)
{
prefs_set_string(PREF_STATUSES_CONSOLE, "all");
roster_init();
roster_create();
char *barejid = "test1@server";
roster_add(barejid, "bob", NULL, "both", FALSE);
Resource *resource = resource_new("resource", RESOURCE_ONLINE, NULL, 10);
@@ -45,13 +45,13 @@ void console_shows_online_presence_when_set_all(void **state)
sv_ev_contact_online(barejid, resource, NULL, NULL);
roster_clear();
roster_destroy();
}
void console_shows_dnd_presence_when_set_all(void **state)
{
prefs_set_string(PREF_STATUSES_CONSOLE, "all");
roster_init();
roster_create();
char *barejid = "test1@server";
roster_add(barejid, "bob", NULL, "both", FALSE);
Resource *resource = resource_new("resource", RESOURCE_ONLINE, NULL, 10);
@@ -62,30 +62,34 @@ void console_shows_dnd_presence_when_set_all(void **state)
sv_ev_contact_online(barejid, resource, NULL, NULL);
roster_clear();
roster_destroy();
}
void handle_offline_removes_chat_session(void **state)
{
roster_create();
chat_sessions_init();
char *barejid = "friend@server.chat.com";
char *resource = "home";
roster_init();
roster_add(barejid, "bob", NULL, "both", FALSE);
Resource *resourcep = resource_new(resource, RESOURCE_ONLINE, NULL, 10);
roster_update_presence(barejid, resourcep, NULL);
chat_session_recipient_active(barejid, resource, FALSE);
ProfConsoleWin *console = malloc(sizeof(ProfConsoleWin));
will_return(win_create_console, &console->window);
wins_init();
sv_ev_contact_offline(barejid, resource, NULL);
ChatSession *session = chat_session_get(barejid);
assert_null(session);
roster_clear();
roster_destroy();
chat_sessions_clear();
}
void lost_connection_clears_chat_sessions(void **state)
{
roster_create();
chat_sessions_init();
chat_session_recipient_active("bob@server.org", "laptop", FALSE);
chat_session_recipient_active("steve@server.org", "mobile", FALSE);

View File

@@ -463,7 +463,7 @@ void occupantswin_occupants(const char * const room) {}
// window interface
ProfWin* win_create_console(void)
{
return NULL;
return (ProfWin*)mock();
}
ProfWin* win_create_xmlconsole(void)
{