about summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2018-03-04 00:35:53 +0000
committerJames Booth <boothj5@gmail.com>2018-03-04 00:35:53 +0000
commit7c5ece24c5ead755e5cd2fcd37d11f14ef5f85fb (patch)
treed51ab7791debb81c14dfb7d385e11166b30d7e3c /tests
parentf4759cf337a6d622dd9e3505acecda45c7ec35ac (diff)
downloadprofani-tty-7c5ece24c5ead755e5cd2fcd37d11f14ef5f85fb.tar.gz
Use jid argument for /bookmark when in room
fixes #983
Diffstat (limited to 'tests')
-rw-r--r--tests/unittests/test_cmd_bookmark.c130
-rw-r--r--tests/unittests/test_cmd_bookmark.h5
-rw-r--r--tests/unittests/unittests.c5
3 files changed, 139 insertions, 1 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/unittests.c b/tests/unittests/unittests.c
index c1d02fe5..4e3e149e 100644
--- a/tests/unittests/unittests.c
+++ b/tests/unittests/unittests.c
@@ -493,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),