aboutsummaryrefslogtreecommitdiffstats
path: root/tests/check-empathy-irc-network-manager.c
diff options
context:
space:
mode:
authorGuillaume Desmottes <gdesmott@gnome.org>2008-01-21 02:29:04 +0800
committerGuillaume Desmottes <gdesmott@gnome.org>2008-01-21 02:29:04 +0800
commitdba3cb90b208eeaaea4c9b8e1a21c9f2da9b95de (patch)
treec00f7d3bbe69f2f024f4349370a3dc6609b1af52 /tests/check-empathy-irc-network-manager.c
parentfc223b6f726d789feb34f8e58fb94a5b3741c266 (diff)
downloadgsoc2013-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.c193
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;
}