diff options
author | Guillaume Desmottes <gdesmott@gnome.org> | 2008-01-20 04:33:02 +0800 |
---|---|---|
committer | Guillaume Desmottes <gdesmott@gnome.org> | 2008-01-20 04:33:02 +0800 |
commit | 2b2f9d95f002f058ca820121820cae631065b408 (patch) | |
tree | 437c777d90d66ba5aec1e7a033fb348248773d80 /tests | |
parent | 32a1557a2009981be9a7f08e6e87935f82193dc0 (diff) | |
download | gsoc2013-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')
-rw-r--r-- | tests/check-empathy-irc-network-manager.c | 88 |
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; } |