5 #include "test-irc-helper.h"
6 #include "test-helper.h"
8 #include <libempathy/empathy-irc-network.h>
11 test_empathy_irc_network_new (void)
13 EmpathyIrcNetwork
*network
;
15 network
= empathy_irc_network_new ("Network1");
16 check_network (network
, "Network1", "UTF-8", NULL
, 0);
18 g_object_unref (network
);
22 test_property_change (void)
24 EmpathyIrcNetwork
*network
;
26 network
= empathy_irc_network_new ("Network1");
27 check_network (network
, "Network1", "UTF-8", NULL
, 0);
29 g_object_set (network
,
31 "charset", "ISO-8859-1",
34 check_network (network
, "Network2", "ISO-8859-1", NULL
, 0);
36 g_object_unref (network
);
40 static gboolean modified
;
43 modified_cb (EmpathyIrcNetwork
*network
,
50 test_modified_signal (void)
52 EmpathyIrcNetwork
*network
;
54 network
= empathy_irc_network_new ("Network1");
55 check_network (network
, "Network1", "UTF-8", NULL
, 0);
58 g_signal_connect (network
, "modified", G_CALLBACK (modified_cb
), NULL
);
60 g_object_set (network
, "name", "Network2", NULL
);
63 g_object_set (network
, "name", "Network2", NULL
);
66 g_object_unref (network
);
70 add_servers (EmpathyIrcNetwork
*network
,
71 struct server_t
*servers
,
76 for (i
= 0; i
< nb_servers
; i
++)
78 EmpathyIrcServer
*server
;
80 server
= empathy_irc_server_new (servers
[i
].address
,
81 servers
[i
].port
, servers
[i
].ssl
);
83 empathy_irc_network_append_server (network
, server
);
85 g_object_unref (server
);
90 test_add_server (void)
92 EmpathyIrcNetwork
*network
;
93 EmpathyIrcServer
*server
;
95 struct server_t test_servers
[] = {
96 { "server1", 6667, FALSE
},
97 { "server2", 6668, TRUE
},
98 { "server3", 6667, FALSE
},
99 { "server4", 6669, TRUE
}};
100 struct server_t servers_without_3
[] = {
101 { "server1", 6667, FALSE
},
102 { "server2", 6668, TRUE
},
103 { "server4", 6669, TRUE
}};
105 network
= empathy_irc_network_new ("Network1");
106 check_network (network
, "Network1", "UTF-8", NULL
, 0);
109 g_signal_connect (network
, "modified", G_CALLBACK (modified_cb
), NULL
);
111 check_network (network
, "Network1", "UTF-8", NULL
, 0);
113 /* add the servers */
114 add_servers (network
, test_servers
, 4);
116 check_network (network
, "Network1", "UTF-8", test_servers
, 4);
118 /* Now let's remove the 3rd server */
119 servers
= empathy_irc_network_get_servers (network
);
120 l
= g_slist_nth (servers
, 2);
121 g_assert (l
!= NULL
);
124 empathy_irc_network_remove_server (network
, server
);
128 g_slist_foreach (servers
, (GFunc
) g_object_unref
, NULL
);
129 g_slist_free (servers
);
131 /* The 3rd server should have disappear */
132 check_network (network
, "Network1", "UTF-8", servers_without_3
, 3);
134 g_object_unref (network
);
138 test_modified_signal_because_of_server (void)
140 EmpathyIrcNetwork
*network
;
141 EmpathyIrcServer
*server
;
143 network
= empathy_irc_network_new ("Network1");
144 check_network (network
, "Network1", "UTF-8", NULL
, 0);
146 g_signal_connect (network
, "modified", G_CALLBACK (modified_cb
), NULL
);
148 server
= empathy_irc_server_new ("server1", 6667, FALSE
);
149 empathy_irc_network_append_server (network
, server
);
151 /* Change server properties */
153 g_object_set (server
, "address", "server2", NULL
);
156 g_object_set (server
, "port", 6668, NULL
);
159 g_object_set (server
, "ssl", TRUE
, NULL
);
162 empathy_irc_network_remove_server (network
, server
);
164 g_object_set (server
, "address", "server3", NULL
);
165 /* We removed the server so the network is not modified anymore */
166 g_assert (!modified
);
168 g_object_unref (network
);
172 test_empathy_irc_network_set_server_position (void)
174 EmpathyIrcNetwork
*network
;
176 struct server_t test_servers
[] = {
177 { "server1", 6667, FALSE
},
178 { "server2", 6668, TRUE
},
179 { "server3", 6667, FALSE
},
180 { "server4", 6669, TRUE
}};
181 struct server_t test_servers_sorted
[] = {
182 { "server2", 6668, TRUE
},
183 { "server4", 6669, TRUE
},
184 { "server3", 6667, FALSE
},
185 { "server1", 6667, FALSE
}};
187 network
= empathy_irc_network_new ("Network1");
188 check_network (network
, "Network1", "UTF-8", NULL
, 0);
191 g_signal_connect (network
, "modified", G_CALLBACK (modified_cb
), NULL
);
193 /* add the servers */
194 add_servers (network
, test_servers
, 4);
195 check_network (network
, "Network1", "UTF-8", test_servers
, 4);
197 /* get servers list */
198 servers
= empathy_irc_network_get_servers (network
);
199 g_assert (g_slist_length (servers
) == 4);
202 /* server1 go to the last position */
203 empathy_irc_network_set_server_position (network
, servers
->data
, -1);
205 /* server2 go to the first position */
207 empathy_irc_network_set_server_position (network
, l
->data
, 0);
209 /* server3 go to the third position */
211 empathy_irc_network_set_server_position (network
, l
->data
, 2);
213 /* server4 go to the second position*/
215 empathy_irc_network_set_server_position (network
, l
->data
, 1);
220 g_slist_foreach (servers
, (GFunc
) g_object_unref
, NULL
);
221 g_slist_free (servers
);
223 /* Check if servers are sorted */
224 check_network (network
, "Network1", "UTF-8", test_servers_sorted
, 4);
233 test_init (argc
, argv
);
235 g_test_add_func ("/irc-network/new", test_empathy_irc_network_new
);
236 g_test_add_func ("/irc-network/property-change", test_property_change
);
237 g_test_add_func ("/irc-network/modified-signal", test_modified_signal
);
238 g_test_add_func ("/irc-network/add-server", test_add_server
);
239 g_test_add_func ("/irc-network/modified-signal-because-of-server",
240 test_modified_signal_because_of_server
);
241 g_test_add_func ("/irc-network/set-server-position",
242 test_empathy_irc_network_set_server_position
);
244 result
= g_test_run ();