From f4759cf337a6d622dd9e3505acecda45c7ec35ac Mon Sep 17 00:00:00 2001 From: James Booth Date: Sat, 10 Feb 2018 00:01:26 +0000 Subject: Update themes --- src/config/theme.c | 2 +- themes/boothj5 | 4 ++-- themes/boothj5_slack | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/config/theme.c b/src/config/theme.c index 6eee3753..7c5937fb 100644 --- a/src/config/theme.c +++ b/src/config/theme.c @@ -402,6 +402,7 @@ _load_preferences(void) _set_boolean_preference("roster.contacts", PREF_ROSTER_CONTACTS); _set_boolean_preference("roster.unsubscribed", PREF_ROSTER_UNSUBSCRIBED); _set_boolean_preference("roster.rooms", PREF_ROSTER_ROOMS); + _set_boolean_preference("roster.rooms.server", PREF_ROSTER_ROOMS_SERVER); _set_boolean_preference("privileges", PREF_MUC_PRIVILEGES); _set_boolean_preference("presence", PREF_PRESENCE); _set_boolean_preference("intype", PREF_INTYPE); @@ -427,7 +428,6 @@ _load_preferences(void) _set_string_preference("roster.unread", PREF_ROSTER_UNREAD); _set_string_preference("roster.rooms.order", PREF_ROSTER_ROOMS_ORDER); _set_string_preference("roster.rooms.unread", PREF_ROSTER_ROOMS_UNREAD); - _set_string_preference("roster.rooms.server", PREF_ROSTER_ROOMS_SERVER); _set_string_preference("roster.rooms.pos", PREF_ROSTER_ROOMS_POS); _set_string_preference("roster.rooms.by", PREF_ROSTER_ROOMS_BY); _set_string_preference("roster.private", PREF_ROSTER_PRIVATE); diff --git a/themes/boothj5 b/themes/boothj5 index fd38f419..b97a4499 100644 --- a/themes/boothj5 +++ b/themes/boothj5 @@ -102,13 +102,12 @@ statuses.muc=none roster=true roster.offline=false roster.empty=false -roster.by=group +roster.by=none roster.order=presence roster.unread=after roster.priority=false roster.size=25 roster.wrap=true -roster.header.char=@ roster.contact.indent=1 roster.resource=true roster.resource.char=/ @@ -124,6 +123,7 @@ roster.rooms.order=name roster.rooms.unread=after roster.rooms.pos=last roster.rooms.by=none +roster.rooms.server=false roster.rooms.private.char=/ roster.private=room roster.count=unread diff --git a/themes/boothj5_slack b/themes/boothj5_slack index 5dd435d1..792fdef2 100644 --- a/themes/boothj5_slack +++ b/themes/boothj5_slack @@ -106,9 +106,8 @@ roster.by=none roster.order=presence roster.unread=after roster.priority=false -roster.size=25 +roster.size=15 roster.wrap=true -roster.header.char=@ roster.contact.indent=1 roster.resource=false roster.presence=false @@ -119,7 +118,8 @@ roster.rooms=true roster.rooms.order=name roster.rooms.unread=after roster.rooms.pos=first -roster.rooms.by=service +roster.rooms.by=none +roster.rooms.server=false roster.rooms.private.char=/ roster.private=room roster.count=unread -- cgit 1.4.1-2-gfad0 From 7c5ece24c5ead755e5cd2fcd37d11f14ef5f85fb Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 4 Mar 2018 00:35:53 +0000 Subject: Use jid argument for /bookmark when in room fixes #983 --- src/command/cmd_funcs.c | 45 ++++++++++++- tests/unittests/test_cmd_bookmark.c | 130 +++++++++++++++++++++++++++++++++++- tests/unittests/test_cmd_bookmark.h | 5 ++ tests/unittests/unittests.c | 5 ++ 4 files changed, 182 insertions(+), 3 deletions(-) diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index 023327ed..bdb30147 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -4500,11 +4500,17 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) if (conn_status != JABBER_CONNECTED) { cons_show("You are not currently connected."); + if (window->type != WIN_CONSOLE) { + cons_alert(); + } return TRUE; } + int num_args = g_strv_length(args); gchar *cmd = args[0]; - if (window->type == WIN_MUC && (cmd == NULL || g_strcmp0(cmd, "add") == 0)) { + if (window->type == WIN_MUC + && num_args < 2 + && (cmd == NULL || g_strcmp0(cmd, "add") == 0)) { // default to current nickname, password, and autojoin "on" ProfMucWin *mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); @@ -4519,7 +4525,9 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) return TRUE; } - if (window->type == WIN_MUC && g_strcmp0(cmd, "remove") == 0) { + if (window->type == WIN_MUC + && num_args < 2 + && g_strcmp0(cmd, "remove") == 0) { ProfMucWin *mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); gboolean removed = bookmark_remove(mucwin->roomjid); @@ -4533,6 +4541,9 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) if (cmd == NULL) { cons_bad_cmd_usage(command); + if (window->type != WIN_CONSOLE) { + cons_alert(); + } return TRUE; } @@ -4547,6 +4558,9 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) cons_bad_cmd_usage(command); cons_show(""); } + if (window->type != WIN_CONSOLE) { + cons_alert(); + } return TRUE; } @@ -4561,11 +4575,17 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) if (jid == NULL) { cons_bad_cmd_usage(command); cons_show(""); + if (window->type != WIN_CONSOLE) { + cons_alert(); + } return TRUE; } if (strchr(jid, '@') == NULL) { cons_show("Invalid room, must be of the form room@domain.tld"); cons_show(""); + if (window->type != WIN_CONSOLE) { + cons_alert(); + } return TRUE; } @@ -4576,6 +4596,9 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) } else { cons_show("No bookmark exists for %s.", jid); } + if (window->type != WIN_CONSOLE) { + cons_alert(); + } return TRUE; } @@ -4584,6 +4607,9 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) if (!joined) { cons_show("No bookmark exists for %s.", jid); } + if (window->type != WIN_CONSOLE) { + cons_alert(); + } return TRUE; } @@ -4594,6 +4620,9 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) if (!parsed) { cons_bad_cmd_usage(command); cons_show(""); + if (window->type != WIN_CONSOLE) { + cons_alert(); + } return TRUE; } @@ -4603,6 +4632,9 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) cons_bad_cmd_usage(command); cons_show(""); options_destroy(options); + if (window->type != WIN_CONSOLE) { + cons_alert(); + } return TRUE; } @@ -4617,6 +4649,9 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) cons_show("Bookmark already exists, use /bookmark update to edit."); } options_destroy(options); + if (window->type != WIN_CONSOLE) { + cons_alert(); + } return TRUE; } @@ -4628,11 +4663,17 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) cons_show("No bookmark exists for %s.", jid); } options_destroy(options); + if (window->type != WIN_CONSOLE) { + cons_alert(); + } return TRUE; } cons_bad_cmd_usage(command); options_destroy(options); + if (window->type != WIN_CONSOLE) { + cons_alert(); + } return TRUE; } 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), -- cgit 1.4.1-2-gfad0 From ecd0736a099ea4b25d302c68af7936b25c5f4eaa Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 4 Mar 2018 21:15:24 +0000 Subject: Remove redundant window->type checks --- src/command/cmd_funcs.c | 48 ++++++++++++------------------------------------ 1 file changed, 12 insertions(+), 36 deletions(-) diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index bdb30147..53c8b9ed 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -4500,9 +4500,7 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) if (conn_status != JABBER_CONNECTED) { cons_show("You are not currently connected."); - if (window->type != WIN_CONSOLE) { - cons_alert(); - } + cons_alert(); return TRUE; } @@ -4541,9 +4539,7 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) if (cmd == NULL) { cons_bad_cmd_usage(command); - if (window->type != WIN_CONSOLE) { - cons_alert(); - } + cons_alert(); return TRUE; } @@ -4558,9 +4554,7 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) cons_bad_cmd_usage(command); cons_show(""); } - if (window->type != WIN_CONSOLE) { - cons_alert(); - } + cons_alert(); return TRUE; } @@ -4575,17 +4569,13 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) if (jid == NULL) { cons_bad_cmd_usage(command); cons_show(""); - if (window->type != WIN_CONSOLE) { - cons_alert(); - } + cons_alert(); return TRUE; } if (strchr(jid, '@') == NULL) { cons_show("Invalid room, must be of the form room@domain.tld"); cons_show(""); - if (window->type != WIN_CONSOLE) { - cons_alert(); - } + cons_alert(); return TRUE; } @@ -4596,9 +4586,7 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) } else { cons_show("No bookmark exists for %s.", jid); } - if (window->type != WIN_CONSOLE) { - cons_alert(); - } + cons_alert(); return TRUE; } @@ -4607,9 +4595,7 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) if (!joined) { cons_show("No bookmark exists for %s.", jid); } - if (window->type != WIN_CONSOLE) { - cons_alert(); - } + cons_alert(); return TRUE; } @@ -4620,9 +4606,7 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) if (!parsed) { cons_bad_cmd_usage(command); cons_show(""); - if (window->type != WIN_CONSOLE) { - cons_alert(); - } + cons_alert(); return TRUE; } @@ -4632,9 +4616,7 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) cons_bad_cmd_usage(command); cons_show(""); options_destroy(options); - if (window->type != WIN_CONSOLE) { - cons_alert(); - } + cons_alert(); return TRUE; } @@ -4649,9 +4631,7 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) cons_show("Bookmark already exists, use /bookmark update to edit."); } options_destroy(options); - if (window->type != WIN_CONSOLE) { - cons_alert(); - } + cons_alert(); return TRUE; } @@ -4663,17 +4643,13 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) cons_show("No bookmark exists for %s.", jid); } options_destroy(options); - if (window->type != WIN_CONSOLE) { - cons_alert(); - } + cons_alert(); return TRUE; } cons_bad_cmd_usage(command); options_destroy(options); - if (window->type != WIN_CONSOLE) { - cons_alert(); - } + cons_alert(); return TRUE; } -- cgit 1.4.1-2-gfad0