about summary refs log tree commit diff stats
path: root/tests/unittests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unittests')
-rw-r--r--tests/unittests/test_cmd_bookmark.c130
-rw-r--r--tests/unittests/test_cmd_bookmark.h5
-rw-r--r--tests/unittests/test_cmd_rooms.c34
-rw-r--r--tests/unittests/test_cmd_rooms.h3
-rw-r--r--tests/unittests/ui/stub_ui.c11
-rw-r--r--tests/unittests/unittests.c26
-rw-r--r--tests/unittests/xmpp/stub_xmpp.c4
7 files changed, 204 insertions, 9 deletions
diff --git a/tests/unittests/test_cmd_bookmark.c b/tests/unittests/test_cmd_bookmark.c
index 901d31f8..fb1f7996 100644
--- a/tests/unittests/test_cmd_bookmark.c
+++ b/tests/unittests/test_cmd_bookmark.c
@@ -24,10 +24,12 @@
 
 static void test_with_connection_status(jabber_conn_status_t status)
 {
+    ProfWin window;
+    window.type = WIN_CONSOLE;
     will_return(connection_get_status, status);
     expect_cons_show("You are not currently connected.");
 
-    gboolean result = cmd_bookmark(NULL, CMD_BOOKMARK, NULL);
+    gboolean result = cmd_bookmark(&window, CMD_BOOKMARK, NULL);
     assert_true(result);
 }
 
@@ -165,6 +167,85 @@ void cmd_bookmark_add_adds_bookmark_with_jid(void **state)
     assert_true(result);
 }
 
+void cmd_bookmark_uses_roomjid_in_room(void **state)
+{
+    muc_init();
+
+    gchar *args[] = { NULL };
+    ProfMucWin muc_win;
+    muc_win.window.type = WIN_MUC;
+    muc_win.memcheck = PROFMUCWIN_MEMCHECK;
+    muc_win.roomjid = "room@conf.server";
+
+    will_return(connection_get_status, JABBER_CONNECTED);
+
+    expect_string(bookmark_add, jid, muc_win.roomjid);
+    expect_any(bookmark_add, nick);
+    expect_any(bookmark_add, password);
+    expect_any(bookmark_add, autojoin_str);
+    will_return(bookmark_add, TRUE);
+
+    expect_win_println("Bookmark added for room@conf.server.");
+
+    gboolean result = cmd_bookmark(&muc_win, CMD_BOOKMARK, args);
+    assert_true(result);
+
+    muc_close();
+}
+
+void cmd_bookmark_add_uses_roomjid_in_room(void **state)
+{
+    muc_init();
+
+    gchar *args[] = { "add", NULL };
+    ProfMucWin muc_win;
+    muc_win.window.type = WIN_MUC;
+    muc_win.memcheck = PROFMUCWIN_MEMCHECK;
+    muc_win.roomjid = "room@conf.server";
+
+    will_return(connection_get_status, JABBER_CONNECTED);
+
+    expect_string(bookmark_add, jid, muc_win.roomjid);
+    expect_any(bookmark_add, nick);
+    expect_any(bookmark_add, password);
+    expect_any(bookmark_add, autojoin_str);
+    will_return(bookmark_add, TRUE);
+
+    expect_win_println("Bookmark added for room@conf.server.");
+
+    gboolean result = cmd_bookmark(&muc_win, CMD_BOOKMARK, args);
+    assert_true(result);
+
+    muc_close();
+}
+
+void cmd_bookmark_add_uses_supplied_jid_in_room(void **state)
+{
+    muc_init();
+
+    char *jid = "room1@conf.server";
+    gchar *args[] = { "add", jid, NULL };
+    ProfMucWin muc_win;
+    muc_win.window.type = WIN_MUC;
+    muc_win.memcheck = PROFMUCWIN_MEMCHECK;
+    muc_win.roomjid = "room2@conf.server";
+
+    will_return(connection_get_status, JABBER_CONNECTED);
+
+    expect_string(bookmark_add, jid, jid);
+    expect_any(bookmark_add, nick);
+    expect_any(bookmark_add, password);
+    expect_any(bookmark_add, autojoin_str);
+    will_return(bookmark_add, TRUE);
+
+    expect_cons_show("Bookmark added for room1@conf.server.");
+
+    gboolean result = cmd_bookmark(&muc_win, CMD_BOOKMARK, args);
+    assert_true(result);
+
+    muc_close();
+}
+
 void cmd_bookmark_add_adds_bookmark_with_jid_nick(void **state)
 {
     char *jid = "room@conf.server";
@@ -265,3 +346,50 @@ void cmd_bookmark_remove_shows_message_when_no_bookmark(void **state)
     gboolean result = cmd_bookmark(&window, CMD_BOOKMARK, args);
     assert_true(result);
 }
+
+void cmd_bookmark_remove_uses_roomjid_in_room(void **state)
+{
+    muc_init();
+
+    gchar *args[] = { "remove", NULL };
+    ProfMucWin muc_win;
+    muc_win.window.type = WIN_MUC;
+    muc_win.memcheck = PROFMUCWIN_MEMCHECK;
+    muc_win.roomjid = "room@conf.server";
+
+    will_return(connection_get_status, JABBER_CONNECTED);
+
+    expect_string(bookmark_remove, jid, muc_win.roomjid);
+    will_return(bookmark_remove, TRUE);
+
+    expect_win_println("Bookmark removed for room@conf.server.");
+
+    gboolean result = cmd_bookmark(&muc_win, CMD_BOOKMARK, args);
+    assert_true(result);
+
+    muc_close();
+}
+
+void cmd_bookmark_remove_uses_supplied_jid_in_room(void **state)
+{
+    muc_init();
+
+    char *jid = "room1@conf.server";
+    gchar *args[] = { "remove", jid, NULL };
+    ProfMucWin muc_win;
+    muc_win.window.type = WIN_MUC;
+    muc_win.memcheck = PROFMUCWIN_MEMCHECK;
+    muc_win.roomjid = "room2@conf.server";
+
+    will_return(connection_get_status, JABBER_CONNECTED);
+
+    expect_string(bookmark_remove, jid, jid);
+    will_return(bookmark_remove, TRUE);
+
+    expect_cons_show("Bookmark removed for room1@conf.server.");
+
+    gboolean result = cmd_bookmark(&muc_win, CMD_BOOKMARK, args);
+    assert_true(result);
+
+    muc_close();
+}
diff --git a/tests/unittests/test_cmd_bookmark.h b/tests/unittests/test_cmd_bookmark.h
index abbdbe98..195882b5 100644
--- a/tests/unittests/test_cmd_bookmark.h
+++ b/tests/unittests/test_cmd_bookmark.h
@@ -6,6 +6,11 @@ void cmd_bookmark_shows_usage_when_no_args(void **state);
 void cmd_bookmark_list_shows_bookmarks(void **state);
 void cmd_bookmark_add_shows_message_when_invalid_jid(void **state);
 void cmd_bookmark_add_adds_bookmark_with_jid(void **state);
+void cmd_bookmark_uses_roomjid_in_room(void **state);
+void cmd_bookmark_add_uses_roomjid_in_room(void **state);
+void cmd_bookmark_add_uses_supplied_jid_in_room(void **state);
+void cmd_bookmark_remove_uses_roomjid_in_room(void **state);
+void cmd_bookmark_remove_uses_supplied_jid_in_room(void **state);
 void cmd_bookmark_add_adds_bookmark_with_jid_nick(void **state);
 void cmd_bookmark_add_adds_bookmark_with_jid_autojoin(void **state);
 void cmd_bookmark_add_adds_bookmark_with_jid_nick_autojoin(void **state);
diff --git a/tests/unittests/test_cmd_rooms.c b/tests/unittests/test_cmd_rooms.c
index 2cb6be6b..b04e5618 100644
--- a/tests/unittests/test_cmd_rooms.c
+++ b/tests/unittests/test_cmd_rooms.c
@@ -53,19 +53,49 @@ void cmd_rooms_uses_account_default_when_no_arg(void **state)
     expect_any(accounts_get_account, name);
     will_return(accounts_get_account, account);
 
+    expect_cons_show("");
+    expect_cons_show("Room list request sent: default_conf_server");
+
     expect_string(iq_room_list_request, conferencejid, "default_conf_server");
+    expect_any(iq_room_list_request, filter);
 
     gboolean result = cmd_rooms(NULL, CMD_ROOMS, args);
     assert_true(result);
 }
 
-void cmd_rooms_arg_used_when_passed(void **state)
+void cmd_rooms_service_arg_used_when_passed(void **state)
 {
-    gchar *args[] = { "conf_server_arg" };
+    gchar *args[] = { "service", "conf_server_arg", NULL };
 
     will_return(connection_get_status, JABBER_CONNECTED);
 
+    expect_cons_show("");
+    expect_cons_show("Room list request sent: conf_server_arg");
+
     expect_string(iq_room_list_request, conferencejid, "conf_server_arg");
+    expect_any(iq_room_list_request, filter);
+
+    gboolean result = cmd_rooms(NULL, CMD_ROOMS, args);
+    assert_true(result);
+}
+
+void cmd_rooms_filter_arg_used_when_passed(void **state)
+{
+    gchar *args[] = { "filter", "text", NULL };
+
+    ProfAccount *account = account_new("testaccount", NULL, NULL, NULL, TRUE, NULL, 0, NULL, NULL, NULL,
+        0, 0, 0, 0, 0, strdup("default_conf_server"), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+
+    will_return(connection_get_status, JABBER_CONNECTED);
+    will_return(session_get_account_name, "account_name");
+    expect_any(accounts_get_account, name);
+    will_return(accounts_get_account, account);
+
+    expect_cons_show("");
+    expect_cons_show("Room list request sent: default_conf_server, filter: 'text'");
+
+    expect_any(iq_room_list_request, conferencejid);
+    expect_string(iq_room_list_request, filter, "text");
 
     gboolean result = cmd_rooms(NULL, CMD_ROOMS, args);
     assert_true(result);
diff --git a/tests/unittests/test_cmd_rooms.h b/tests/unittests/test_cmd_rooms.h
index 1b13cf07..4d656948 100644
--- a/tests/unittests/test_cmd_rooms.h
+++ b/tests/unittests/test_cmd_rooms.h
@@ -3,4 +3,5 @@ void cmd_rooms_shows_message_when_disconnecting(void **state);
 void cmd_rooms_shows_message_when_connecting(void **state);
 void cmd_rooms_shows_message_when_undefined(void **state);
 void cmd_rooms_uses_account_default_when_no_arg(void **state);
-void cmd_rooms_arg_used_when_passed(void **state);
+void cmd_rooms_service_arg_used_when_passed(void **state);
+void cmd_rooms_filter_arg_used_when_passed(void **state);
diff --git a/tests/unittests/ui/stub_ui.c b/tests/unittests/ui/stub_ui.c
index f2d8c5d7..420653e1 100644
--- a/tests/unittests/ui/stub_ui.c
+++ b/tests/unittests/ui/stub_ui.c
@@ -445,8 +445,10 @@ void cons_autoaway_setting(void) {}
 void cons_reconnect_setting(void) {}
 void cons_autoping_setting(void) {}
 void cons_autoconnect_setting(void) {}
+void cons_rooms_cache_setting(void) {}
 void cons_inpblock_setting(void) {}
 void cons_winpos_setting(void) {}
+void cons_statusbar_setting(void) {}
 void cons_tray_setting(void) {}
 
 void cons_show_contact_online(PContact contact, Resource *resource, GDateTime *last_activity)
@@ -465,8 +467,8 @@ void title_bar_set_presence(contact_presence_t presence) {}
 
 // status bar
 void status_bar_inactive(const int win) {}
-void status_bar_active(const int win) {}
-void status_bar_new(const int win) {}
+void status_bar_active(const int win, win_type_t type, char *identifier) {}
+void status_bar_new(const int win, win_type_t type, char *identifier) {}
 void status_bar_set_all_inactive(void) {}
 
 // roster window
@@ -505,6 +507,11 @@ ProfWin* win_create_plugin(const char *const plugin_name, const char * const tag
     return NULL;
 }
 
+char* win_get_tab_identifier(ProfWin *window)
+{
+    return NULL;
+}
+
 void win_update_virtual(ProfWin *window) {}
 void win_free(ProfWin *window) {}
 gboolean win_notify_remind(ProfWin *window)
diff --git a/tests/unittests/unittests.c b/tests/unittests/unittests.c
index 2938b9ff..4e3e149e 100644
--- a/tests/unittests/unittests.c
+++ b/tests/unittests/unittests.c
@@ -6,7 +6,9 @@
 #include <setjmp.h>
 #include <cmocka.h>
 #include <sys/stat.h>
+#include <stdlib.h>
 #include <locale.h>
+#include <langinfo.h>
 
 #include "config.h"
 #include "xmpp/chat_session.h"
@@ -38,7 +40,21 @@
 #include "test_plugins_disco.h"
 
 int main(int argc, char* argv[]) {
-    setlocale(LC_ALL, "");
+    setlocale(LC_ALL, "en_GB.UTF-8");
+    char *codeset = nl_langinfo(CODESET);
+    char *lang = getenv("LANG");
+
+    printf("Charset information:\n");
+
+    if (lang) {
+        printf("  LANG:       %s\n", lang);
+    }
+    if (codeset) {
+        printf("  CODESET:    %s\n", codeset);
+    }
+    printf("  MB_CUR_MAX: %d\n", MB_CUR_MAX);
+    printf("  MB_LEN_MAX: %d\n", MB_LEN_MAX);
+
     const UnitTest all_tests[] = {
 
         unit_test(replace_one_substr),
@@ -297,7 +313,8 @@ int main(int argc, char* argv[]) {
         unit_test(cmd_rooms_shows_message_when_disconnecting),
         unit_test(cmd_rooms_shows_message_when_connecting),
         unit_test(cmd_rooms_uses_account_default_when_no_arg),
-        unit_test(cmd_rooms_arg_used_when_passed),
+        unit_test(cmd_rooms_service_arg_used_when_passed),
+        unit_test(cmd_rooms_filter_arg_used_when_passed),
 
         unit_test(cmd_account_shows_usage_when_not_connected_and_no_args),
         unit_test(cmd_account_shows_account_when_connected_and_no_args),
@@ -476,6 +493,11 @@ int main(int argc, char* argv[]) {
         unit_test(cmd_bookmark_list_shows_bookmarks),
         unit_test(cmd_bookmark_add_shows_message_when_invalid_jid),
         unit_test(cmd_bookmark_add_adds_bookmark_with_jid),
+        unit_test(cmd_bookmark_uses_roomjid_in_room),
+        unit_test(cmd_bookmark_add_uses_roomjid_in_room),
+        unit_test(cmd_bookmark_add_uses_supplied_jid_in_room),
+        unit_test(cmd_bookmark_remove_uses_roomjid_in_room),
+        unit_test(cmd_bookmark_remove_uses_supplied_jid_in_room),
         unit_test(cmd_bookmark_add_adds_bookmark_with_jid_nick),
         unit_test(cmd_bookmark_add_adds_bookmark_with_jid_autojoin),
         unit_test(cmd_bookmark_add_adds_bookmark_with_jid_nick_autojoin),
diff --git a/tests/unittests/xmpp/stub_xmpp.c b/tests/unittests/xmpp/stub_xmpp.c
index 630c0b19..45db6649 100644
--- a/tests/unittests/xmpp/stub_xmpp.c
+++ b/tests/unittests/xmpp/stub_xmpp.c
@@ -172,9 +172,10 @@ void iq_disable_carbons() {};
 void iq_enable_carbons() {};
 void iq_send_software_version(const char * const fulljid) {}
 
-void iq_room_list_request(gchar *conferencejid)
+void iq_room_list_request(gchar *conferencejid, gchar *filter)
 {
     check_expected(conferencejid);
+    check_expected(filter);
 }
 
 void iq_disco_info_request(gchar *jid) {}
@@ -203,6 +204,7 @@ void iq_room_role_set(const char * const room, const char * const nick, char *ro
 void iq_room_role_list(const char * const room, char *role) {}
 void iq_last_activity_request(gchar *jid) {}
 void iq_autoping_check(void) {}
+void iq_rooms_cache_clear(void) {}
 
 // caps functions
 void caps_add_feature(char *feature) {}