diff options
-rw-r--r-- | tests/Makefile.am | 3 | ||||
-rw-r--r-- | tests/check-empathy-chatroom.c | 128 | ||||
-rw-r--r-- | tests/check-libempathy.h | 1 | ||||
-rw-r--r-- | tests/check-main.c | 1 |
4 files changed, 132 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 5f8cbb6e4..6709a6a40 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -37,7 +37,8 @@ check_main_SOURCES = \ check-irc-helper.c \ check-empathy-irc-server.c \ check-empathy-irc-network.c \ - check-empathy-irc-network-manager.c + check-empathy-irc-network-manager.c \ + check-empathy-chatroom.c check_main_LDADD = \ @CHECK_LIBS@ \ diff --git a/tests/check-empathy-chatroom.c b/tests/check-empathy-chatroom.c new file mode 100644 index 000000000..5a696e7aa --- /dev/null +++ b/tests/check-empathy-chatroom.c @@ -0,0 +1,128 @@ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +#include <check.h> +#include "check-helpers.h" +#include "check-libempathy.h" + +#include <libempathy/empathy-chatroom.h> + +static EmpathyChatroom * +create_chatroom (void) +{ + McProfile *profile; + McAccount *account; + EmpathyChatroom *chatroom; + + /* FIXME: we should fake the profile */ + profile = mc_profile_lookup ("jabber"); + account = mc_account_create (profile); + chatroom = empathy_chatroom_new (account); + fail_if (chatroom == NULL); + + g_object_unref (profile); + + 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 (chatroom); + /* FIXME: unref the account ? */ +} +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 (chatroom); + /* FIXME: unref the account ? */ +} +END_TEST + +TCase * +make_empathy_chatroom_tcase (void) +{ + TCase *tc = tcase_create ("empathy-chatroom"); + tcase_add_test (tc, test_empathy_chatroom_new); + tcase_add_test (tc, test_favorite_and_auto_connect); + return tc; +} diff --git a/tests/check-libempathy.h b/tests/check-libempathy.h index 0f9388dcf..48c58b81b 100644 --- a/tests/check-libempathy.h +++ b/tests/check-libempathy.h @@ -5,5 +5,6 @@ TCase * make_empathy_utils_tcase (void); TCase * make_empathy_irc_server_tcase (void); TCase * make_empathy_irc_network_tcase (void); TCase * make_empathy_irc_network_manager_tcase (void); +TCase * make_empathy_chatroom_tcase (void); #endif /* #ifndef __CHECK_LIBEMPATHY__ */ diff --git a/tests/check-main.c b/tests/check-main.c index f0e366d03..9c497a765 100644 --- a/tests/check-main.c +++ b/tests/check-main.c @@ -19,6 +19,7 @@ make_libempathy_suite (void) suite_add_tcase (s, make_empathy_irc_server_tcase ()); suite_add_tcase (s, make_empathy_irc_network_tcase ()); suite_add_tcase (s, make_empathy_irc_network_manager_tcase ()); + suite_add_tcase (s, make_empathy_chatroom_tcase ()); return s; } |