5 #include "test-helper.h"
6 #include "empathy-chatroom.h"
9 static EmpathyChatroom *
10 create_chatroom (void)
12 EmpathyAccount *account;
13 EmpathyChatroom *chatroom;
15 account = get_test_account ();
16 chatroom = empathy_chatroom_new (account);
17 fail_if (chatroom == NULL);
22 START_TEST (test_empathy_chatroom_new)
24 EmpathyChatroom *chatroom;
25 gboolean auto_connect, favorite;
27 chatroom = create_chatroom ();
28 fail_if (empathy_chatroom_get_auto_connect (chatroom));
29 g_object_get (chatroom,
30 "auto_connect", &auto_connect,
31 "favorite", &favorite,
33 fail_if (auto_connect);
36 g_object_unref (empathy_chatroom_get_account (chatroom));
37 g_object_unref (chatroom);
41 START_TEST (test_favorite_and_auto_connect)
43 /* auto connect implies favorite */
44 EmpathyChatroom *chatroom;
45 gboolean auto_connect, favorite;
47 chatroom = create_chatroom ();
49 /* set auto_connect so favorite as a side effect */
50 empathy_chatroom_set_auto_connect (chatroom, TRUE);
51 fail_if (!empathy_chatroom_get_auto_connect (chatroom));
52 g_object_get (chatroom,
53 "auto_connect", &auto_connect,
54 "favorite", &favorite,
56 fail_if (!auto_connect);
59 /* Remove auto_connect. Chatroom is still favorite */
60 empathy_chatroom_set_auto_connect (chatroom, FALSE);
61 fail_if (empathy_chatroom_get_auto_connect (chatroom));
62 g_object_get (chatroom,
63 "auto_connect", &auto_connect,
64 "favorite", &favorite,
66 fail_if (auto_connect);
69 /* Remove favorite too now */
70 g_object_set (chatroom, "favorite", FALSE, NULL);
71 fail_if (empathy_chatroom_get_auto_connect (chatroom));
72 g_object_get (chatroom,
73 "auto_connect", &auto_connect,
74 "favorite", &favorite,
76 fail_if (auto_connect);
79 /* Just add favorite but not auto-connect */
80 g_object_set (chatroom, "favorite", TRUE, NULL);
81 fail_if (empathy_chatroom_get_auto_connect (chatroom));
82 g_object_get (chatroom,
83 "auto_connect", &auto_connect,
84 "favorite", &favorite,
86 fail_if (auto_connect);
89 /* ... and re-add auto_connect */
90 g_object_set (chatroom, "auto_connect", TRUE, NULL);
91 fail_if (!empathy_chatroom_get_auto_connect (chatroom));
92 g_object_get (chatroom,
93 "auto_connect", &auto_connect,
94 "favorite", &favorite,
96 fail_if (!auto_connect);
99 /* Remove favorite remove auto_connect too */
100 g_object_set (chatroom, "favorite", FALSE, NULL);
101 fail_if (empathy_chatroom_get_auto_connect (chatroom));
102 g_object_get (chatroom,
103 "auto_connect", &auto_connect,
104 "favorite", &favorite,
106 fail_if (auto_connect);
109 g_object_unref (empathy_chatroom_get_account (chatroom));
110 g_object_unref (chatroom);
115 favorite_changed (EmpathyChatroom *chatroom,
122 START_TEST (test_change_favorite)
124 EmpathyChatroom *chatroom;
125 gboolean changed = FALSE;
127 chatroom = create_chatroom ();
129 g_signal_connect (chatroom, "notify::favorite", G_CALLBACK (favorite_changed),
132 /* change favorite to TRUE */
133 g_object_set (chatroom, "favorite", TRUE, NULL);
138 /* change favorite to FALSE */
139 g_object_set (chatroom, "favorite", FALSE, NULL);
151 test_init (argc, argv);
154 g_test_add_func ("/chatroom/new", test_empathy_chatroom_new);
155 g_test_add_func ("/chatroom/favorite-and-auto-connect",
156 test_favorite_and_auto_connect);
157 g_test_add_func ("/chatroom/change-favorite", test_change_favorite);
160 result = g_test_run ();