aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/check-empathy-irc-network.c75
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;
}