diff options
-rw-r--r-- | tests/check-empathy-irc-network.c | 75 |
1 files changed, 74 insertions, 1 deletions
diff --git a/tests/check-empathy-irc-network.c b/tests/check-empathy-irc-network.c index 8bcb37ba1..fe62eba20 100644 --- a/tests/check-empathy-irc-network.c +++ b/tests/check-empathy-irc-network.c @@ -54,7 +54,7 @@ START_TEST (test_property_change) } END_TEST -static gboolean modified = TRUE; +static gboolean modified; static void modified_cb (EmpathyIrcNetwork *network, @@ -70,6 +70,7 @@ START_TEST (test_modified_signal) network = empathy_irc_network_new ("id1", "Network1"); fail_if (network == NULL); + modified = FALSE; g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL); g_object_set (network, "name", "Network2", NULL); @@ -82,6 +83,77 @@ START_TEST (test_modified_signal) } END_TEST +struct server_t +{ + gchar *address; + guint port; + gboolean ssl; +}; + +START_TEST (test_add_server) +{ + EmpathyIrcNetwork *network; + EmpathyIrcServer *server; + GSList *servers, *l; + guint i; + struct server_t test_servers[] = { + { "server1", 6667, FALSE }, + { "server2", 6668, TRUE }, + { "server3", 6667, FALSE }, + { "server4", 6669, TRUE}}; + + network = empathy_irc_network_new ("id1", "Network1"); + fail_if (network == NULL); + + modified = FALSE; + g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL); + + servers = empathy_irc_network_get_servers (network); + fail_if (servers != NULL); + + /* add the servers */ + for (i = 0; i < 4; i ++) + { + server = empathy_irc_server_new (test_servers[i].address, + test_servers[i].port, test_servers[i].ssl); + empathy_irc_network_add_server (network, server); + g_object_unref (server); + } + + /* get servers list */ + servers = empathy_irc_network_get_servers (network); + fail_if (g_slist_length (servers) != 4); + + /* Is that the right servers ? */ + for (l = servers, i = 0; l != NULL; l = g_slist_next (l), i++) + { + gchar *address; + guint port; + gboolean ssl; + + server = l->data; + + g_object_get (server, + "address", &address, + "port", &port, + "ssl", &ssl, + NULL); + + fail_if (address == NULL || strcmp (address, test_servers[i].address) + != 0); + fail_if (port != test_servers[i].port); + fail_if (ssl != test_servers[i].ssl); + + g_free (address); + } + + g_slist_foreach (servers, (GFunc) g_object_unref, NULL); + g_slist_free (servers); + + g_object_unref (network); +} +END_TEST + TCase * make_empathy_irc_network_tcase (void) { @@ -89,5 +161,6 @@ make_empathy_irc_network_tcase (void) tcase_add_test (tc, test_empathy_irc_network_new); tcase_add_test (tc, test_property_change); tcase_add_test (tc, test_modified_signal); + tcase_add_test (tc, test_add_server); return tc; } |