4 #include <tp-account-widgets/tpaw-irc-network.h>
6 #include "test-helper.h"
7 #include "test-irc-helper.h"
10 test_tpaw_irc_network_new (void)
12 TpawIrcNetwork *network;
14 network = tpaw_irc_network_new ("Network1");
15 check_network (network, "Network1", "UTF-8", NULL, 0);
17 g_object_unref (network);
21 test_property_change (void)
23 TpawIrcNetwork *network;
25 network = tpaw_irc_network_new ("Network1");
26 check_network (network, "Network1", "UTF-8", NULL, 0);
28 g_object_set (network,
30 "charset", "ISO-8859-1",
33 check_network (network, "Network2", "ISO-8859-1", NULL, 0);
35 g_object_unref (network);
39 static gboolean modified;
42 modified_cb (TpawIrcNetwork *network,
49 test_modified_signal (void)
51 TpawIrcNetwork *network;
53 network = tpaw_irc_network_new ("Network1");
54 check_network (network, "Network1", "UTF-8", NULL, 0);
57 g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL);
59 g_object_set (network, "name", "Network2", NULL);
62 g_object_set (network, "name", "Network2", NULL);
65 g_object_unref (network);
69 add_servers (TpawIrcNetwork *network,
70 struct server_t *servers,
75 for (i = 0; i < nb_servers; i ++)
77 TpawIrcServer *server;
79 server = tpaw_irc_server_new (servers[i].address,
80 servers[i].port, servers[i].ssl);
82 tpaw_irc_network_append_server (network, server);
84 g_object_unref (server);
89 test_add_server (void)
91 TpawIrcNetwork *network;
92 TpawIrcServer *server;
94 struct server_t test_servers[] = {
95 { "server1", 6667, FALSE },
96 { "server2", 6668, TRUE },
97 { "server3", 6667, FALSE },
98 { "server4", 6669, TRUE }};
99 struct server_t servers_without_3[] = {
100 { "server1", 6667, FALSE },
101 { "server2", 6668, TRUE },
102 { "server4", 6669, TRUE }};
104 network = tpaw_irc_network_new ("Network1");
105 check_network (network, "Network1", "UTF-8", NULL, 0);
108 g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL);
110 check_network (network, "Network1", "UTF-8", NULL, 0);
112 /* add the servers */
113 add_servers (network, test_servers, 4);
115 check_network (network, "Network1", "UTF-8", test_servers, 4);
117 /* Now let's remove the 3rd server */
118 servers = tpaw_irc_network_get_servers (network);
119 l = g_slist_nth (servers, 2);
120 g_assert (l != NULL);
123 tpaw_irc_network_remove_server (network, server);
127 g_slist_foreach (servers, (GFunc) g_object_unref, NULL);
128 g_slist_free (servers);
130 /* The 3rd server should have disappear */
131 check_network (network, "Network1", "UTF-8", servers_without_3, 3);
133 g_object_unref (network);
137 test_modified_signal_because_of_server (void)
139 TpawIrcNetwork *network;
140 TpawIrcServer *server;
142 network = tpaw_irc_network_new ("Network1");
143 check_network (network, "Network1", "UTF-8", NULL, 0);
145 g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL);
147 server = tpaw_irc_server_new ("server1", 6667, FALSE);
148 tpaw_irc_network_append_server (network, server);
150 /* Change server properties */
152 g_object_set (server, "address", "server2", NULL);
155 g_object_set (server, "port", 6668, NULL);
158 g_object_set (server, "ssl", TRUE, NULL);
161 tpaw_irc_network_remove_server (network, server);
163 g_object_set (server, "address", "server3", NULL);
164 /* We removed the server so the network is not modified anymore */
165 g_assert (!modified);
167 g_object_unref (network);
171 test_tpaw_irc_network_set_server_position (void)
173 TpawIrcNetwork *network;
175 struct server_t test_servers[] = {
176 { "server1", 6667, FALSE },
177 { "server2", 6668, TRUE },
178 { "server3", 6667, FALSE },
179 { "server4", 6669, TRUE }};
180 struct server_t test_servers_sorted[] = {
181 { "server2", 6668, TRUE },
182 { "server4", 6669, TRUE },
183 { "server3", 6667, FALSE },
184 { "server1", 6667, FALSE }};
186 network = tpaw_irc_network_new ("Network1");
187 check_network (network, "Network1", "UTF-8", NULL, 0);
190 g_signal_connect (network, "modified", G_CALLBACK (modified_cb), NULL);
192 /* add the servers */
193 add_servers (network, test_servers, 4);
194 check_network (network, "Network1", "UTF-8", test_servers, 4);
196 /* get servers list */
197 servers = tpaw_irc_network_get_servers (network);
198 g_assert (g_slist_length (servers) == 4);
201 /* server1 go to the last position */
202 tpaw_irc_network_set_server_position (network, servers->data, -1);
204 /* server2 go to the first position */
206 tpaw_irc_network_set_server_position (network, l->data, 0);
208 /* server3 go to the third position */
210 tpaw_irc_network_set_server_position (network, l->data, 2);
212 /* server4 go to the second position*/
214 tpaw_irc_network_set_server_position (network, l->data, 1);
219 g_slist_foreach (servers, (GFunc) g_object_unref, NULL);
220 g_slist_free (servers);
222 /* Check if servers are sorted */
223 check_network (network, "Network1", "UTF-8", test_servers_sorted, 4);
232 test_init (argc, argv);
234 g_test_add_func ("/irc-network/new", test_tpaw_irc_network_new);
235 g_test_add_func ("/irc-network/property-change", test_property_change);
236 g_test_add_func ("/irc-network/modified-signal", test_modified_signal);
237 g_test_add_func ("/irc-network/add-server", test_add_server);
238 g_test_add_func ("/irc-network/modified-signal-because-of-server",
239 test_modified_signal_because_of_server);
240 g_test_add_func ("/irc-network/set-server-position",
241 test_tpaw_irc_network_set_server_position);
243 result = g_test_run ();