aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorGuillaume Desmottes <gdesmott@gnome.org>2008-01-07 05:52:46 +0800
committerGuillaume Desmottes <gdesmott@gnome.org>2008-01-07 05:52:46 +0800
commit33b540dfe799c1d5b21492e12d4a7506eebb1ef3 (patch)
tree187ae60d3ff1d05c2de84ff9b867b1730a6a427b /tests
parentaf06754e64d33ddb0f58d23b784da6c92ea7cca0 (diff)
downloadgsoc2013-empathy-33b540dfe799c1d5b21492e12d4a7506eebb1ef3.tar
gsoc2013-empathy-33b540dfe799c1d5b21492e12d4a7506eebb1ef3.tar.gz
gsoc2013-empathy-33b540dfe799c1d5b21492e12d4a7506eebb1ef3.tar.bz2
gsoc2013-empathy-33b540dfe799c1d5b21492e12d4a7506eebb1ef3.tar.lz
gsoc2013-empathy-33b540dfe799c1d5b21492e12d4a7506eebb1ef3.tar.xz
gsoc2013-empathy-33b540dfe799c1d5b21492e12d4a7506eebb1ef3.tar.zst
gsoc2013-empathy-33b540dfe799c1d5b21492e12d4a7506eebb1ef3.zip
check-empathy-irc-network: test empathy_irc_network_set_server_position
Diffstat (limited to 'tests')
-rw-r--r--tests/check-empathy-irc-network.c111
1 files changed, 96 insertions, 15 deletions
diff --git a/tests/check-empathy-irc-network.c b/tests/check-empathy-irc-network.c
index 6f56ced1d..413ef6398 100644
--- a/tests/check-empathy-irc-network.c
+++ b/tests/check-empathy-irc-network.c
@@ -90,17 +90,36 @@ struct server_t
gboolean ssl;
};
+struct server_t test_servers[] = {
+ { "server1", 6667, FALSE },
+ { "server2", 6668, TRUE },
+ { "server3", 6667, FALSE },
+ { "server4", 6669, TRUE }};
+
+static void
+add_test_servers (EmpathyIrcNetwork *network)
+{
+ guint i;
+
+ for (i = 0; i < 4; i ++)
+ {
+ EmpathyIrcServer *server;
+
+ server = empathy_irc_server_new (test_servers[i].address,
+ test_servers[i].port, test_servers[i].ssl);
+ modified = FALSE;
+ empathy_irc_network_add_server (network, server);
+ fail_if (!modified);
+ g_object_unref (server);
+ }
+}
+
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);
@@ -112,15 +131,7 @@ START_TEST (test_add_server)
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);
- fail_if (!modified);
- modified = FALSE;
- g_object_unref (server);
- }
+ add_test_servers (network);
/* get servers list */
servers = empathy_irc_network_get_servers (network);
@@ -153,7 +164,7 @@ START_TEST (test_add_server)
l = g_slist_nth (servers, 2);
fail_if (l == NULL);
server = l->data;
- modified = TRUE;
+ modified = FALSE;
empathy_irc_network_remove_server (network, server);
fail_if (!modified);
@@ -234,6 +245,75 @@ START_TEST (test_modified_signal_because_of_server)
}
END_TEST
+START_TEST (test_empathy_irc_network_set_server_position)
+{
+ EmpathyIrcNetwork *network;
+ GSList *servers, *l;
+ gchar *address;
+
+ network = empathy_irc_network_new ("id1", "Network1");
+ fail_if (network == NULL);
+
+ modified = FALSE;
+ g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL);
+
+ /* add the servers */
+ add_test_servers (network);
+
+ /* get servers list */
+ servers = empathy_irc_network_get_servers (network);
+ fail_if (g_slist_length (servers) != 4);
+
+ /* server1 go to the last position */
+ empathy_irc_network_set_server_position (network, servers->data, -1);
+
+ /* server2 go to the first position */
+ l = servers->next;
+ empathy_irc_network_set_server_position (network, l->data, 0);
+
+ /* server3 go to the third position */
+ l = l->next;
+ empathy_irc_network_set_server_position (network, l->data, 2);
+
+ /* server4 go to the second position*/
+ l = l->next;
+ empathy_irc_network_set_server_position (network, l->data, 1);
+
+ /* free the list */
+ g_slist_foreach (servers, (GFunc) g_object_unref, NULL);
+ g_slist_free (servers);
+
+ /* get servers list */
+ servers = empathy_irc_network_get_servers (network);
+ fail_if (g_slist_length (servers) != 4);
+
+ /* check the new servers list */
+ l = servers;
+ g_object_get (l->data, "address", &address, NULL);
+ fail_if (address == NULL || strcmp (address, "server2") != 0);
+ g_free (address);
+
+ l = g_slist_next (l);
+ g_object_get (l->data, "address", &address, NULL);
+ fail_if (address == NULL || strcmp (address, "server4") != 0);
+ g_free (address);
+
+ l = g_slist_next (l);
+ g_object_get (l->data, "address", &address, NULL);
+ fail_if (address == NULL || strcmp (address, "server3") != 0);
+ g_free (address);
+
+ l = g_slist_next (l);
+ g_object_get (l->data, "address", &address, NULL);
+ fail_if (address == NULL || strcmp (address, "server1") != 0);
+ g_free (address);
+
+ /* free the list */
+ g_slist_foreach (servers, (GFunc) g_object_unref, NULL);
+ g_slist_free (servers);
+}
+END_TEST
+
TCase *
make_empathy_irc_network_tcase (void)
{
@@ -243,5 +323,6 @@ make_empathy_irc_network_tcase (void)
tcase_add_test (tc, test_modified_signal);
tcase_add_test (tc, test_add_server);
tcase_add_test (tc, test_modified_signal_because_of_server);
+ tcase_add_test (tc, test_empathy_irc_network_set_server_position);
return tc;
}