diff options
author | Guillaume Desmottes <gdesmott@gnome.org> | 2008-01-07 05:52:46 +0800 |
---|---|---|
committer | Guillaume Desmottes <gdesmott@gnome.org> | 2008-01-07 05:52:46 +0800 |
commit | 33b540dfe799c1d5b21492e12d4a7506eebb1ef3 (patch) | |
tree | 187ae60d3ff1d05c2de84ff9b867b1730a6a427b /tests | |
parent | af06754e64d33ddb0f58d23b784da6c92ea7cca0 (diff) | |
download | gsoc2013-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.c | 111 |
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; } |