aboutsummaryrefslogtreecommitdiffstats
path: root/tests/check-empathy-irc-network-manager.c
diff options
context:
space:
mode:
authorGuillaume Desmottes <gdesmott@gnome.org>2008-01-20 04:33:02 +0800
committerGuillaume Desmottes <gdesmott@gnome.org>2008-01-20 04:33:02 +0800
commit2b2f9d95f002f058ca820121820cae631065b408 (patch)
tree437c777d90d66ba5aec1e7a033fb348248773d80 /tests/check-empathy-irc-network-manager.c
parent32a1557a2009981be9a7f08e6e87935f82193dc0 (diff)
downloadgsoc2013-empathy-2b2f9d95f002f058ca820121820cae631065b408.tar
gsoc2013-empathy-2b2f9d95f002f058ca820121820cae631065b408.tar.gz
gsoc2013-empathy-2b2f9d95f002f058ca820121820cae631065b408.tar.bz2
gsoc2013-empathy-2b2f9d95f002f058ca820121820cae631065b408.tar.lz
gsoc2013-empathy-2b2f9d95f002f058ca820121820cae631065b408.tar.xz
gsoc2013-empathy-2b2f9d95f002f058ca820121820cae631065b408.tar.zst
gsoc2013-empathy-2b2f9d95f002f058ca820121820cae631065b408.zip
test empathy_irc_network_manager_remove
Diffstat (limited to 'tests/check-empathy-irc-network-manager.c')
-rw-r--r--tests/check-empathy-irc-network-manager.c88
1 files changed, 88 insertions, 0 deletions
diff --git a/tests/check-empathy-irc-network-manager.c b/tests/check-empathy-irc-network-manager.c
index 5956b5edb..4946aeed6 100644
--- a/tests/check-empathy-irc-network-manager.c
+++ b/tests/check-empathy-irc-network-manager.c
@@ -127,11 +127,99 @@ START_TEST (test_load_global_file)
}
END_TEST
+static gboolean
+remove_network_named (EmpathyIrcNetworkManager *mgr,
+ const gchar *network_name)
+{
+ GSList *networks, *l;
+ gboolean removed = FALSE;
+
+ networks = empathy_irc_network_manager_get_networks (mgr);
+
+ /* check networks and servers */
+ for (l = networks; l != NULL && !removed; l = g_slist_next (l))
+ {
+ EmpathyIrcNetwork *network = l->data;
+ gchar *name;
+
+ g_object_get (network, "name", &name, NULL);
+ fail_if (name == NULL);
+
+ if (strcmp (name, network_name) == 0)
+ {
+ empathy_irc_network_manager_remove (mgr, network);
+ removed = TRUE;
+ }
+
+ g_free (name);
+ }
+
+ g_slist_foreach (networks, (GFunc) g_object_unref, NULL);
+ g_slist_free (networks);
+
+ return removed;
+}
+
+START_TEST (test_empathy_irc_network_manager_remove)
+{
+ EmpathyIrcNetworkManager *mgr;
+ GSList *networks, *l;
+ struct server_t freenode_servers[] = {
+ { "irc.freenode.net", 6667, FALSE },
+ { "irc.eu.freenode.net", 6667, FALSE }};
+ struct server_t test_servers[] = {
+ { "irc.test.org", 6669, TRUE }};
+ gboolean network_checked[2];
+ gboolean result;
+
+ mgr = empathy_irc_network_manager_new (GLOBAL_SAMPLE, NULL);
+
+ result = remove_network_named (mgr, "GIMPNet");
+ fail_if (!result);
+
+ networks = empathy_irc_network_manager_get_networks (mgr);
+ fail_if (g_slist_length (networks) != 2);
+
+ network_checked[0] = network_checked[1] = FALSE;
+ /* check networks and servers */
+ for (l = networks; l != NULL; l = g_slist_next (l))
+ {
+ gchar *name;
+
+ g_object_get (l->data, "name", &name, NULL);
+ fail_if (name == NULL);
+
+ if (strcmp (name, "Freenode") == 0)
+ {
+ check_network (l->data, "Freenode", freenode_servers, 2);
+ network_checked[0] = TRUE;
+ }
+ else if (strcmp (name, "Test Server") == 0)
+ {
+ check_network (l->data, "Test Server", test_servers, 1);
+ network_checked[1] = TRUE;
+ }
+ else
+ {
+ fail_if (TRUE);
+ }
+
+ g_free (name);
+ }
+ fail_if (!network_checked[0] || !network_checked[1]);
+
+ g_slist_foreach (networks, (GFunc) g_object_unref, NULL);
+ g_slist_free (networks);
+ g_object_unref (mgr);
+}
+END_TEST
+
TCase *
make_empathy_irc_network_manager_tcase (void)
{
TCase *tc = tcase_create ("empathy-irc-network-manager");
tcase_add_test (tc, test_empathy_irc_network_manager_add);
tcase_add_test (tc, test_load_global_file);
+ tcase_add_test (tc, test_empathy_irc_network_manager_remove);
return tc;
}