aboutsummaryrefslogtreecommitdiffstats
path: root/tests/empathy-chatroom-test.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/empathy-chatroom-test.c')
-rw-r--r--tests/empathy-chatroom-test.c165
1 files changed, 165 insertions, 0 deletions
diff --git a/tests/empathy-chatroom-test.c b/tests/empathy-chatroom-test.c
new file mode 100644
index 000000000..77d0c29e9
--- /dev/null
+++ b/tests/empathy-chatroom-test.c
@@ -0,0 +1,165 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "check-empathy-helpers.h"
+#include "test-helper.h"
+
+#include <libempathy/empathy-chatroom.h>
+
+#if 0
+static EmpathyChatroom *
+create_chatroom (void)
+{
+ EmpathyAccount *account;
+ EmpathyChatroom *chatroom;
+
+ account = get_test_account ();
+ chatroom = empathy_chatroom_new (account);
+ fail_if (chatroom == NULL);
+
+ return chatroom;
+}
+
+START_TEST (test_empathy_chatroom_new)
+{
+ EmpathyChatroom *chatroom;
+ gboolean auto_connect, favorite;
+
+ chatroom = create_chatroom ();
+ fail_if (empathy_chatroom_get_auto_connect (chatroom));
+ g_object_get (chatroom,
+ "auto_connect", &auto_connect,
+ "favorite", &favorite,
+ NULL);
+ fail_if (auto_connect);
+ fail_if (favorite);
+
+ g_object_unref (empathy_chatroom_get_account (chatroom));
+ g_object_unref (chatroom);
+}
+END_TEST
+
+START_TEST (test_favorite_and_auto_connect)
+{
+ /* auto connect implies favorite */
+ EmpathyChatroom *chatroom;
+ gboolean auto_connect, favorite;
+
+ chatroom = create_chatroom ();
+
+ /* set auto_connect so favorite as a side effect */
+ empathy_chatroom_set_auto_connect (chatroom, TRUE);
+ fail_if (!empathy_chatroom_get_auto_connect (chatroom));
+ g_object_get (chatroom,
+ "auto_connect", &auto_connect,
+ "favorite", &favorite,
+ NULL);
+ fail_if (!auto_connect);
+ fail_if (!favorite);
+
+ /* Remove auto_connect. Chatroom is still favorite */
+ empathy_chatroom_set_auto_connect (chatroom, FALSE);
+ fail_if (empathy_chatroom_get_auto_connect (chatroom));
+ g_object_get (chatroom,
+ "auto_connect", &auto_connect,
+ "favorite", &favorite,
+ NULL);
+ fail_if (auto_connect);
+ fail_if (!favorite);
+
+ /* Remove favorite too now */
+ g_object_set (chatroom, "favorite", FALSE, NULL);
+ fail_if (empathy_chatroom_get_auto_connect (chatroom));
+ g_object_get (chatroom,
+ "auto_connect", &auto_connect,
+ "favorite", &favorite,
+ NULL);
+ fail_if (auto_connect);
+ fail_if (favorite);
+
+ /* Just add favorite but not auto-connect */
+ g_object_set (chatroom, "favorite", TRUE, NULL);
+ fail_if (empathy_chatroom_get_auto_connect (chatroom));
+ g_object_get (chatroom,
+ "auto_connect", &auto_connect,
+ "favorite", &favorite,
+ NULL);
+ fail_if (auto_connect);
+ fail_if (!favorite);
+
+ /* ... and re-add auto_connect */
+ g_object_set (chatroom, "auto_connect", TRUE, NULL);
+ fail_if (!empathy_chatroom_get_auto_connect (chatroom));
+ g_object_get (chatroom,
+ "auto_connect", &auto_connect,
+ "favorite", &favorite,
+ NULL);
+ fail_if (!auto_connect);
+ fail_if (!favorite);
+
+ /* Remove favorite remove auto_connect too */
+ g_object_set (chatroom, "favorite", FALSE, NULL);
+ fail_if (empathy_chatroom_get_auto_connect (chatroom));
+ g_object_get (chatroom,
+ "auto_connect", &auto_connect,
+ "favorite", &favorite,
+ NULL);
+ fail_if (auto_connect);
+ fail_if (favorite);
+
+ g_object_unref (empathy_chatroom_get_account (chatroom));
+ g_object_unref (chatroom);
+}
+END_TEST
+
+static void
+favorite_changed (EmpathyChatroom *chatroom,
+ GParamSpec *spec,
+ gboolean *changed)
+{
+ *changed = TRUE;
+}
+
+START_TEST (test_change_favorite)
+{
+ EmpathyChatroom *chatroom;
+ gboolean changed = FALSE;
+
+ chatroom = create_chatroom ();
+
+ g_signal_connect (chatroom, "notify::favorite", G_CALLBACK (favorite_changed),
+ &changed);
+
+ /* change favorite to TRUE */
+ g_object_set (chatroom, "favorite", TRUE, NULL);
+ fail_if (!changed);
+
+ changed = FALSE;
+
+ /* change favorite to FALSE */
+ g_object_set (chatroom, "favorite", FALSE, NULL);
+ fail_if (!changed);
+}
+END_TEST
+#endif
+
+int
+main (int argc,
+ char **argv)
+{
+ int result;
+
+ test_init (argc, argv);
+
+#if 0
+ g_test_add_func ("/chatroom/new", test_empathy_chatroom_new);
+ g_test_add_func ("/chatroom/favorite-and-auto-connect",
+ test_favorite_and_auto_connect);
+ g_test_add_func ("/chatroom/change-favorite", test_change_favorite);
+#endif
+
+ result = g_test_run ();
+ test_deinit ();
+ return result;
+}