diff options
author | Guillaume Desmottes <gdesmott@gnome.org> | 2008-01-21 02:29:04 +0800 |
---|---|---|
committer | Guillaume Desmottes <gdesmott@gnome.org> | 2008-01-21 02:29:04 +0800 |
commit | dba3cb90b208eeaaea4c9b8e1a21c9f2da9b95de (patch) | |
tree | c00f7d3bbe69f2f024f4349370a3dc6609b1af52 /tests/check-empathy-irc-network-manager.c | |
parent | fc223b6f726d789feb34f8e58fb94a5b3741c266 (diff) | |
download | gsoc2013-empathy-dba3cb90b208eeaaea4c9b8e1a21c9f2da9b95de.tar gsoc2013-empathy-dba3cb90b208eeaaea4c9b8e1a21c9f2da9b95de.tar.gz gsoc2013-empathy-dba3cb90b208eeaaea4c9b8e1a21c9f2da9b95de.tar.bz2 gsoc2013-empathy-dba3cb90b208eeaaea4c9b8e1a21c9f2da9b95de.tar.lz gsoc2013-empathy-dba3cb90b208eeaaea4c9b8e1a21c9f2da9b95de.tar.xz gsoc2013-empathy-dba3cb90b208eeaaea4c9b8e1a21c9f2da9b95de.tar.zst gsoc2013-empathy-dba3cb90b208eeaaea4c9b8e1a21c9f2da9b95de.zip |
start to test modifications with 2 network files loaded (not finished yet)
Diffstat (limited to 'tests/check-empathy-irc-network-manager.c')
-rw-r--r-- | tests/check-empathy-irc-network-manager.c | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/tests/check-empathy-irc-network-manager.c b/tests/check-empathy-irc-network-manager.c index 7ea1e13b0..7a9644b6b 100644 --- a/tests/check-empathy-irc-network-manager.c +++ b/tests/check-empathy-irc-network-manager.c @@ -564,6 +564,198 @@ START_TEST (test_modify_user_file) } END_TEST +START_TEST (test_modify_both_files) +{ + EmpathyIrcNetworkManager *mgr; + EmpathyIrcNetwork *network; + EmpathyIrcServer *server; + gchar *global_file, *user_file; + GSList *networks, *l; + struct server_t gimpnet_servers[] = { + { "irc.gimp.org", 6667, TRUE }, + { "irc.us.gimp.org", 6668, FALSE }}; + struct server_t great_server[] = { + { "irc.greatserver.com", 7873, TRUE }}; + struct server_t another_server[] = { + { "irc.anothersrv.be", 6660, FALSE }}; + struct server_t undernet_servers[] = { + { "eu.undernet.org", 6667, FALSE }, + { "us.undernet.org", 6667, FALSE }}; + gboolean network_modified[4]; + gboolean network_checked[4]; + + copy_user_file (); + mgr = empathy_irc_network_manager_new (GLOBAL_SAMPLE, USER_FILE); + + g_object_get (mgr, + "global-file", &global_file, + "user-file", &user_file, + NULL); + fail_if (global_file == NULL || strcmp (global_file, GLOBAL_SAMPLE) != 0); + fail_if (user_file == NULL || strcmp (user_file, USER_FILE) != 0); + g_free (global_file); + g_free (user_file); + + networks = empathy_irc_network_manager_get_networks (mgr); + fail_if (g_slist_length (networks) != 5); + + network_modified[0] = network_modified[1] = network_modified[2] = + network_modified[3] = FALSE; + /* check networks and servers */ + for (l = networks; l != NULL; l = g_slist_next (l)) + { + EmpathyIrcNetwork *network; + gchar *name; + + network = l->data; + g_object_get (network, "name", &name, NULL); + fail_if (name == NULL); + + if (strcmp (name, "GIMPNet") == 0) + { + /* Modify user network */ + GSList *servers, *ll; + + servers = empathy_irc_network_get_servers (network); + for (ll = servers; ll != NULL; ll = g_slist_next (ll)) + { + EmpathyIrcServer *server; + gchar *address; + + server = ll->data; + g_object_get (server, "address", &address, NULL); + if (strcmp (address, "irc.gimp.org") == 0) + { + /* change SSL */ + g_object_set (server, "ssl", TRUE, NULL); + } + else if (strcmp (address, "irc.us.gimp.org") == 0) + { + /* change port */ + g_object_set (server, "port", 6668, NULL); + } + else if (strcmp (address, "irc.au.gimp.org") == 0) + { + /* remove this server */ + empathy_irc_network_remove_server (network, server); + } + else + { + fail_if (TRUE); + } + + g_free (address); + } + + network_modified[0] = TRUE; + + g_slist_foreach (servers, (GFunc) g_object_unref, NULL); + g_slist_free (servers); + } + else if (strcmp (name, "My Server") == 0) + { + /* remove user network */ + empathy_irc_network_manager_remove (mgr, network); + network_modified[1] = TRUE; + } + else if (strcmp (name, "Freenode") == 0) + { + /* remove global network */ + empathy_irc_network_manager_remove (mgr, network); + network_modified[2] = TRUE; + } + else if (strcmp (name, "Undernet") == 0) + { + /* modify global network */ + EmpathyIrcServer *server; + + server = empathy_irc_server_new ("us.undernet.org", 6667, FALSE); + empathy_irc_network_add_server (network, server); + g_object_unref (server); + + network_modified[3] = TRUE; + } + else if (strcmp (name, "Another Server") == 0) + { + /* Don't change this one */ + } + else + { + fail_if (TRUE); + } + + g_free (name); + } + fail_if (!network_modified[0] || !network_modified[1] || !network_modified[2] + || !network_modified[3]); + + /* Add a new network */ + network = empathy_irc_network_new ("Great Server"); + server = empathy_irc_server_new ("irc.greatserver.com", 7873, TRUE); + empathy_irc_network_add_server (network, server); + empathy_irc_network_manager_add (mgr, network); + g_object_unref (server); + g_object_unref (network); + + empathy_irc_network_manager_store (mgr); + + g_slist_foreach (networks, (GFunc) g_object_unref, NULL); + g_slist_free (networks); + g_object_unref (mgr); + + + /* Now let's reload the file and check its contain */ + mgr = empathy_irc_network_manager_new (GLOBAL_SAMPLE, USER_FILE); + + networks = empathy_irc_network_manager_get_networks (mgr); + fail_if (g_slist_length (networks) != 4); + + network_checked[0] = network_checked[1] = network_checked[2] = + network_checked[3] = FALSE; + /* check networks and servers */ + for (l = networks; l != NULL; l = g_slist_next (l)) + { + gchar *name; + + g_object_get (l->data, "name", &name, NULL); + fail_if (name == NULL); + + if (strcmp (name, "GIMPNet") == 0) + { + check_network (l->data, "GIMPNet", gimpnet_servers, 2); + network_checked[0] = TRUE; + } + else if (strcmp (name, "Great Server") == 0) + { + check_network (l->data, "Great Server", great_server, 1); + network_checked[1] = TRUE; + } + else if (strcmp (name, "Another Server") == 0) + { + check_network (l->data, "Another Server", another_server, 1); + network_checked[2] = TRUE; + } + else if (strcmp (name, "Undernet") == 0) + { + check_network (l->data, "Another Server", undernet_servers, 2); + network_checked[3] = TRUE; + } + else + { + fail_if (TRUE); + } + + g_free (name); + } + fail_if (!network_checked[0] || !network_checked[1] || !network_checked[2] || + !network_checked[3]); + + g_slist_foreach (networks, (GFunc) g_object_unref, NULL); + g_slist_free (networks); + g_object_unref (mgr); +} +END_TEST + TCase * make_empathy_irc_network_manager_tcase (void) { @@ -574,5 +766,6 @@ make_empathy_irc_network_manager_tcase (void) tcase_add_test (tc, test_load_user_file); tcase_add_test (tc, test_load_both_files); tcase_add_test (tc, test_modify_user_file); + tcase_add_test (tc, test_modify_both_files); return tc; } |