From d3d64970aca1fa3cf19632843b27b2a88b0e8acd Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Tue, 27 Oct 2009 16:18:10 +0000 Subject: port check-empathy-irc-network.c to GTest --- tests/.gitignore | 1 + tests/Makefile.am | 8 +- tests/check-empathy-irc-network.c | 240 ------------------------------------ tests/check-libempathy.h | 1 - tests/check-main.c | 1 - tests/empathy-irc-network-test.c | 247 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 254 insertions(+), 244 deletions(-) delete mode 100644 tests/check-empathy-irc-network.c create mode 100644 tests/empathy-irc-network-test.c diff --git a/tests/.gitignore b/tests/.gitignore index ccf6ccd3e..7500f716f 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -2,4 +2,5 @@ check-main *.log empathy-utils-test empathy-irc-server-test +empathy-irc-network-test test-report.xml diff --git a/tests/Makefile.am b/tests/Makefile.am index 29bd2257f..4780adab5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -25,7 +25,8 @@ LDADD = \ TEST_PROGS = \ empathy-utils-test \ - empathy-irc-server-test + empathy-irc-server-test \ + empathy-irc-network-test empathy_utils_test_SOURCES = empathy-utils-test.c \ test-helper.c test-helper.h @@ -34,6 +35,10 @@ empathy_irc_server_test_SOURCES = empathy-irc-server-test.c \ test-helper.c test-helper.h \ check-irc-helper.h check-irc-helper.c +empathy_irc_network_test_SOURCES = empathy-irc-network-test.c \ + test-helper.c test-helper.h \ + check-irc-helper.h check-irc-helper.c + check_PROGRAMS = check-main $(TEST_PROGS) TESTS = check-main @@ -46,7 +51,6 @@ check_main_SOURCES = \ check-empathy-helpers.c \ check-irc-helper.h \ check-irc-helper.c \ - check-empathy-irc-network.c \ check-empathy-irc-network-manager.c \ check-empathy-chatroom.c \ check-empathy-chatroom-manager.c diff --git a/tests/check-empathy-irc-network.c b/tests/check-empathy-irc-network.c deleted file mode 100644 index b8124a305..000000000 --- a/tests/check-empathy-irc-network.c +++ /dev/null @@ -1,240 +0,0 @@ -#include -#include -#include - -#include -#include "check-helpers.h" -#include "check-libempathy.h" -#include "check-irc-helper.h" - -#include - -START_TEST (test_empathy_irc_network_new) -{ - EmpathyIrcNetwork *network; - - network = empathy_irc_network_new ("Network1"); - check_network (network, "Network1", "UTF-8", NULL, 0); - - g_object_unref (network); -} -END_TEST - -START_TEST (test_property_change) -{ - EmpathyIrcNetwork *network; - - network = empathy_irc_network_new ("Network1"); - check_network (network, "Network1", "UTF-8", NULL, 0); - - g_object_set (network, - "name", "Network2", - "charset", "ISO-8859-1", - NULL); - - check_network (network, "Network2", "ISO-8859-1", NULL, 0); - - g_object_unref (network); - -} -END_TEST - -static gboolean modified; - -static void -modified_cb (EmpathyIrcNetwork *network, - gpointer unused) -{ - modified = TRUE; -} - -START_TEST (test_modified_signal) -{ - EmpathyIrcNetwork *network; - - network = empathy_irc_network_new ("Network1"); - check_network (network, "Network1", "UTF-8", NULL, 0); - - modified = FALSE; - g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL); - - g_object_set (network, "name", "Network2", NULL); - fail_if (!modified); - modified = FALSE; - g_object_set (network, "name", "Network2", NULL); - fail_if (modified); - - g_object_unref (network); -} -END_TEST - -static void -add_servers (EmpathyIrcNetwork *network, - struct server_t *servers, - guint nb_servers) -{ - guint i; - - for (i = 0; i < nb_servers; i ++) - { - EmpathyIrcServer *server; - - server = empathy_irc_server_new (servers[i].address, - servers[i].port, servers[i].ssl); - modified = FALSE; - empathy_irc_network_append_server (network, server); - fail_if (!modified); - g_object_unref (server); - } -} - -START_TEST (test_add_server) -{ - EmpathyIrcNetwork *network; - EmpathyIrcServer *server; - GSList *servers, *l; - struct server_t test_servers[] = { - { "server1", 6667, FALSE }, - { "server2", 6668, TRUE }, - { "server3", 6667, FALSE }, - { "server4", 6669, TRUE }}; - struct server_t servers_without_3[] = { - { "server1", 6667, FALSE }, - { "server2", 6668, TRUE }, - { "server4", 6669, TRUE }}; - - network = empathy_irc_network_new ("Network1"); - check_network (network, "Network1", "UTF-8", NULL, 0); - - modified = FALSE; - g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL); - - check_network (network, "Network1", "UTF-8", NULL, 0); - - /* add the servers */ - add_servers (network, test_servers, 4); - - check_network (network, "Network1", "UTF-8", test_servers, 4); - - /* Now let's remove the 3rd server */ - servers = empathy_irc_network_get_servers (network); - l = g_slist_nth (servers, 2); - fail_if (l == NULL); - server = l->data; - modified = FALSE; - empathy_irc_network_remove_server (network, server); - fail_if (!modified); - - /* free the list */ - g_slist_foreach (servers, (GFunc) g_object_unref, NULL); - g_slist_free (servers); - - /* The 3rd server should have disappear */ - check_network (network, "Network1", "UTF-8", servers_without_3, 3); - - g_object_unref (network); -} -END_TEST - -START_TEST (test_modified_signal_because_of_server) -{ - EmpathyIrcNetwork *network; - EmpathyIrcServer *server; - - network = empathy_irc_network_new ("Network1"); - check_network (network, "Network1", "UTF-8", NULL, 0); - - g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL); - - server = empathy_irc_server_new ("server1", 6667, FALSE); - empathy_irc_network_append_server (network, server); - - /* Change server properties */ - modified = FALSE; - g_object_set (server, "address", "server2", NULL); - fail_if (!modified); - modified = FALSE; - g_object_set (server, "port", 6668, NULL); - fail_if (!modified); - modified = FALSE; - g_object_set (server, "ssl", TRUE, NULL); - fail_if (!modified); - - empathy_irc_network_remove_server (network, server); - modified = FALSE; - g_object_set (server, "address", "server3", NULL); - /* We removed the server so the network is not modified anymore */ - fail_if (modified); - - g_object_unref (network); -} -END_TEST - -START_TEST (test_empathy_irc_network_set_server_position) -{ - EmpathyIrcNetwork *network; - GSList *servers, *l; - struct server_t test_servers[] = { - { "server1", 6667, FALSE }, - { "server2", 6668, TRUE }, - { "server3", 6667, FALSE }, - { "server4", 6669, TRUE }}; - struct server_t test_servers_sorted[] = { - { "server2", 6668, TRUE }, - { "server4", 6669, TRUE }, - { "server3", 6667, FALSE }, - { "server1", 6667, FALSE }}; - - network = empathy_irc_network_new ("Network1"); - check_network (network, "Network1", "UTF-8", NULL, 0); - - modified = FALSE; - g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL); - - /* add the servers */ - add_servers (network, test_servers, 4); - check_network (network, "Network1", "UTF-8", test_servers, 4); - - /* get servers list */ - servers = empathy_irc_network_get_servers (network); - fail_if (g_slist_length (servers) != 4); - modified = FALSE; - - /* 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); - - fail_if (!modified); - - /* free the list */ - g_slist_foreach (servers, (GFunc) g_object_unref, NULL); - g_slist_free (servers); - - /* Check if servers are sorted */ - check_network (network, "Network1", "UTF-8", test_servers_sorted, 4); -} -END_TEST - -TCase * -make_empathy_irc_network_tcase (void) -{ - TCase *tc = tcase_create ("empathy-irc-network"); - 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); - tcase_add_test (tc, test_modified_signal_because_of_server); - tcase_add_test (tc, test_empathy_irc_network_set_server_position); - return tc; -} diff --git a/tests/check-libempathy.h b/tests/check-libempathy.h index ea8aeb158..e5333fefd 100644 --- a/tests/check-libempathy.h +++ b/tests/check-libempathy.h @@ -1,7 +1,6 @@ #ifndef __CHECK_LIBEMPATHY__ #define __CHECK_LIBEMPATHY__ -TCase * make_empathy_irc_network_tcase (void); TCase * make_empathy_irc_network_manager_tcase (void); TCase * make_empathy_chatroom_tcase (void); TCase * make_empathy_chatroom_manager_tcase (void); diff --git a/tests/check-main.c b/tests/check-main.c index 311e6ccae..7ef5fece0 100644 --- a/tests/check-main.c +++ b/tests/check-main.c @@ -16,7 +16,6 @@ make_libempathy_suite (void) { Suite *s = suite_create ("libempathy"); - suite_add_tcase (s, make_empathy_irc_network_tcase ()); suite_add_tcase (s, make_empathy_irc_network_manager_tcase ()); suite_add_tcase (s, make_empathy_chatroom_tcase ()); suite_add_tcase (s, make_empathy_chatroom_manager_tcase ()); diff --git a/tests/empathy-irc-network-test.c b/tests/empathy-irc-network-test.c new file mode 100644 index 000000000..00fbe91b1 --- /dev/null +++ b/tests/empathy-irc-network-test.c @@ -0,0 +1,247 @@ +#include +#include +#include + +#include "check-irc-helper.h" +#include "test-helper.h" + +#include + +static void +test_empathy_irc_network_new (void) +{ + EmpathyIrcNetwork *network; + + network = empathy_irc_network_new ("Network1"); + check_network (network, "Network1", "UTF-8", NULL, 0); + + g_object_unref (network); +} + +static void +test_property_change (void) +{ + EmpathyIrcNetwork *network; + + network = empathy_irc_network_new ("Network1"); + check_network (network, "Network1", "UTF-8", NULL, 0); + + g_object_set (network, + "name", "Network2", + "charset", "ISO-8859-1", + NULL); + + check_network (network, "Network2", "ISO-8859-1", NULL, 0); + + g_object_unref (network); + +} + +static gboolean modified; + +static void +modified_cb (EmpathyIrcNetwork *network, + gpointer unused) +{ + modified = TRUE; +} + +static void +test_modified_signal (void) +{ + EmpathyIrcNetwork *network; + + network = empathy_irc_network_new ("Network1"); + check_network (network, "Network1", "UTF-8", NULL, 0); + + modified = FALSE; + g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL); + + g_object_set (network, "name", "Network2", NULL); + g_assert (modified); + modified = FALSE; + g_object_set (network, "name", "Network2", NULL); + g_assert (!modified); + + g_object_unref (network); +} + +static void +add_servers (EmpathyIrcNetwork *network, + struct server_t *servers, + guint nb_servers) +{ + guint i; + + for (i = 0; i < nb_servers; i ++) + { + EmpathyIrcServer *server; + + server = empathy_irc_server_new (servers[i].address, + servers[i].port, servers[i].ssl); + modified = FALSE; + empathy_irc_network_append_server (network, server); + g_assert (modified); + g_object_unref (server); + } +} + +static void +test_add_server (void) +{ + EmpathyIrcNetwork *network; + EmpathyIrcServer *server; + GSList *servers, *l; + struct server_t test_servers[] = { + { "server1", 6667, FALSE }, + { "server2", 6668, TRUE }, + { "server3", 6667, FALSE }, + { "server4", 6669, TRUE }}; + struct server_t servers_without_3[] = { + { "server1", 6667, FALSE }, + { "server2", 6668, TRUE }, + { "server4", 6669, TRUE }}; + + network = empathy_irc_network_new ("Network1"); + check_network (network, "Network1", "UTF-8", NULL, 0); + + modified = FALSE; + g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL); + + check_network (network, "Network1", "UTF-8", NULL, 0); + + /* add the servers */ + add_servers (network, test_servers, 4); + + check_network (network, "Network1", "UTF-8", test_servers, 4); + + /* Now let's remove the 3rd server */ + servers = empathy_irc_network_get_servers (network); + l = g_slist_nth (servers, 2); + g_assert (l != NULL); + server = l->data; + modified = FALSE; + empathy_irc_network_remove_server (network, server); + g_assert (modified); + + /* free the list */ + g_slist_foreach (servers, (GFunc) g_object_unref, NULL); + g_slist_free (servers); + + /* The 3rd server should have disappear */ + check_network (network, "Network1", "UTF-8", servers_without_3, 3); + + g_object_unref (network); +} + +static void +test_modified_signal_because_of_server (void) +{ + EmpathyIrcNetwork *network; + EmpathyIrcServer *server; + + network = empathy_irc_network_new ("Network1"); + check_network (network, "Network1", "UTF-8", NULL, 0); + + g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL); + + server = empathy_irc_server_new ("server1", 6667, FALSE); + empathy_irc_network_append_server (network, server); + + /* Change server properties */ + modified = FALSE; + g_object_set (server, "address", "server2", NULL); + g_assert (modified); + modified = FALSE; + g_object_set (server, "port", 6668, NULL); + g_assert (modified); + modified = FALSE; + g_object_set (server, "ssl", TRUE, NULL); + g_assert (modified); + + empathy_irc_network_remove_server (network, server); + modified = FALSE; + g_object_set (server, "address", "server3", NULL); + /* We removed the server so the network is not modified anymore */ + g_assert (!modified); + + g_object_unref (network); +} + +static void +test_empathy_irc_network_set_server_position (void) +{ + EmpathyIrcNetwork *network; + GSList *servers, *l; + struct server_t test_servers[] = { + { "server1", 6667, FALSE }, + { "server2", 6668, TRUE }, + { "server3", 6667, FALSE }, + { "server4", 6669, TRUE }}; + struct server_t test_servers_sorted[] = { + { "server2", 6668, TRUE }, + { "server4", 6669, TRUE }, + { "server3", 6667, FALSE }, + { "server1", 6667, FALSE }}; + + network = empathy_irc_network_new ("Network1"); + check_network (network, "Network1", "UTF-8", NULL, 0); + + modified = FALSE; + g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL); + + /* add the servers */ + add_servers (network, test_servers, 4); + check_network (network, "Network1", "UTF-8", test_servers, 4); + + /* get servers list */ + servers = empathy_irc_network_get_servers (network); + g_assert (g_slist_length (servers) == 4); + modified = FALSE; + + /* 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); + + g_assert (modified); + + /* free the list */ + g_slist_foreach (servers, (GFunc) g_object_unref, NULL); + g_slist_free (servers); + + /* Check if servers are sorted */ + check_network (network, "Network1", "UTF-8", test_servers_sorted, 4); +} + +int +main (int argc, + char **argv) +{ + int result; + + test_init (argc, argv); + + g_test_add_func ("/irc-network/new", test_empathy_irc_network_new); + g_test_add_func ("/irc-network/property-change", test_property_change); + g_test_add_func ("/irc-network/modified-signal", test_modified_signal); + g_test_add_func ("/irc-network/add-server", test_add_server); + g_test_add_func ("/irc-network/modified-signal-because-of-server", + test_modified_signal_because_of_server); + g_test_add_func ("/irc-network/set-server-position", + test_empathy_irc_network_set_server_position); + + result = g_test_run (); + test_deinit (); + return result; +} -- cgit v1.2.3