4 #include <glib/gstdio.h>
6 #include <gconf/gconf.h>
7 #include <gconf/gconf-client.h>
8 #include <telepathy-glib/util.h>
11 #include "check-helpers.h"
12 #include "check-libempathy.h"
13 #include "check-empathy-helpers.h"
15 #include <libempathy/empathy-chatroom-manager.h>
17 #define CHATROOM_SAMPLE "chatrooms-sample.xml"
18 #define CHATROOM_FILE "chatrooms.xml"
21 check_chatroom (EmpathyChatroom *chatroom,
24 gboolean auto_connect,
29 fail_if (tp_strdiff (empathy_chatroom_get_name (chatroom), name));
30 fail_if (tp_strdiff (empathy_chatroom_get_room (chatroom), room));
31 fail_if (empathy_chatroom_get_auto_connect (chatroom) != auto_connect);
32 g_object_get (chatroom, "favorite", &_favorite, NULL);
33 fail_if (favorite != _favorite);
40 gboolean auto_connect;
45 check_chatrooms_list (EmpathyChatroomManager *mgr,
47 struct chatroom_t *_chatrooms,
54 fail_if (empathy_chatroom_manager_get_count (mgr, account) != nb_chatrooms);
56 found = g_hash_table_new (g_str_hash, g_str_equal);
57 for (i = 0; i < nb_chatrooms; i++)
59 g_hash_table_insert (found, _chatrooms[i].room, &_chatrooms[i]);
62 chatrooms = empathy_chatroom_manager_get_chatrooms (mgr, account);
63 fail_if (g_list_length (chatrooms) != nb_chatrooms);
65 for (l = chatrooms; l != NULL; l = g_list_next (l))
67 EmpathyChatroom *chatroom = l->data;
68 struct chatroom_t *tmp;
70 tmp = g_hash_table_lookup (found, empathy_chatroom_get_room (chatroom));
71 fail_if (tmp == NULL);
73 check_chatroom (chatroom, tmp->name, tmp->room, tmp->auto_connect,
76 g_hash_table_remove (found, empathy_chatroom_get_room (chatroom));
79 fail_if (g_hash_table_size (found) != 0);
81 g_hash_table_destroy (found);
84 START_TEST (test_empathy_chatroom_manager_new)
86 EmpathyChatroomManager *mgr;
90 struct chatroom_t chatrooms[] = {
91 { "name1", "room1", TRUE, TRUE },
92 { "name2", "room2", FALSE, TRUE }};
94 account = create_test_account ();
96 copy_xml_file (CHATROOM_SAMPLE, CHATROOM_FILE);
98 file = get_user_xml_file (CHATROOM_FILE);
99 /* change the chatrooms XML file to use the account we just created */
100 cmd = g_strdup_printf ("sed -i 's/CHANGE_ME/%s/' %s",
101 mc_account_get_unique_name (account), file);
105 mgr = empathy_chatroom_manager_new (file);
106 check_chatrooms_list (mgr, account, chatrooms, 2);
109 g_object_unref (mgr);
110 destroy_test_account (account);
115 make_empathy_chatroom_manager_tcase (void)
117 TCase *tc = tcase_create ("empathy-chatroom-manager");
118 tcase_add_test (tc, test_empathy_chatroom_manager_new);