From 6800bf1cad19d3ec99a3c8333be5fae81a24954d Mon Sep 17 00:00:00 2001 From: James Booth Date: Sat, 20 Dec 2014 18:39:39 +0000 Subject: [PATCH] Fixed tests --- src/command/commands.c | 4 ++-- src/ui/core.c | 7 +++++++ src/ui/ui.h | 2 ++ tests/test_cmd_otr.c | 18 +++++++++++++++--- tests/ui/mock_ui.c | 13 +++++++++++++ tests/ui/mock_ui.h | 2 ++ tests/xmpp/mock_xmpp.c | 4 ++-- 7 files changed, 43 insertions(+), 7 deletions(-) diff --git a/src/command/commands.c b/src/command/commands.c index 7316de2f..68785ee6 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -3887,7 +3887,7 @@ cmd_otr(gchar **args, struct cmd_help_t help) } else if (!ui_current_win_is_otr()) { ui_current_print_formatted_line('!', 0, "You are not currently in an OTR session."); } else { - ProfChatWin *chatwin = wins_get_current_chat(); + ProfChatWin *chatwin = ui_get_current_chat(); char *fingerprint = otr_get_their_fingerprint(chatwin->barejid); ui_current_print_formatted_line('!', 0, "%s's OTR fingerprint: %s", chatwin->barejid, fingerprint); free(fingerprint); @@ -3933,7 +3933,7 @@ cmd_otr(gchar **args, struct cmd_help_t help) if (!otr_key_loaded()) { ui_current_print_formatted_line('!', 0, "You have not generated or loaded a private key, use '/otr gen'"); } else { - ProfChatWin *chatwin = wins_get_current_chat(); + ProfChatWin *chatwin = ui_get_current_chat(); char *otr_query_message = otr_start_query(); message_send_chat(chatwin->barejid, otr_query_message); } diff --git a/src/ui/core.c b/src/ui/core.c index ef203838..98fda0c4 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -314,6 +314,12 @@ _ui_get_recipients(void) return recipients; } +ProfChatWin * +_ui_get_current_chat(void) +{ + return wins_get_current_chat(); +} + static void _ui_incoming_msg(const char * const barejid, const char * const message, GTimeVal *tv_stamp) { @@ -3208,5 +3214,6 @@ ui_init_module(void) ui_redraw = _ui_redraw; ui_show_all_room_rosters = _ui_show_all_room_rosters; ui_hide_all_room_rosters = _ui_hide_all_room_rosters; + ui_get_current_chat = _ui_get_current_chat; } diff --git a/src/ui/ui.h b/src/ui/ui.h index ec8d38c0..59324113 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -109,6 +109,8 @@ int (*ui_current_win_index)(void); gboolean (*ui_current_win_is_otr)(void); void (*ui_current_set_otr)(gboolean value); +ProfChatWin *(*ui_get_current_chat)(void); + void (*ui_current_print_line)(const char * const msg, ...); void (*ui_current_print_formatted_line)(const char show_char, int attrs, const char * const msg, ...); void (*ui_current_error_line)(const char * const msg); diff --git a/tests/test_cmd_otr.c b/tests/test_cmd_otr.c index 31a79d3c..fcc39fc1 100644 --- a/tests/test_cmd_otr.c +++ b/tests/test_cmd_otr.c @@ -457,14 +457,18 @@ void cmd_otr_theirfp_shows_fingerprint(void **state) gchar *args[] = { "theirfp", NULL }; mock_connection_status(JABBER_CONNECTED); mock_current_win_type(WIN_CHAT); + ProfChatWin *chatwin = malloc(sizeof(ProfChatWin)); + chatwin->barejid = strdup(recipient); + mock_ui_get_current_chat(chatwin); + ui_current_win_is_otr_returns(TRUE); mock_ui_current_print_formatted_line(); - GString *message = g_string_new(recipient); + GString *message = g_string_new(chatwin->barejid); g_string_append(message, "'s OTR fingerprint: "); g_string_append(message, fingerprint); - otr_get_their_fingerprint_expect_and_return(recipient, strdup(fingerprint)); + otr_get_their_fingerprint_expect_and_return(chatwin->barejid, strdup(fingerprint)); ui_current_print_formatted_line_expect('!', 0, message->str); gboolean result = cmd_otr(args, *help); @@ -472,6 +476,8 @@ void cmd_otr_theirfp_shows_fingerprint(void **state) g_string_free(message, TRUE); free(help); + free(chatwin->barejid); + free(chatwin); } static void @@ -550,16 +556,22 @@ cmd_otr_start_sends_otr_query_message_to_current_recipeint(void **state) gchar *args[] = { "start", NULL }; mock_connection_status(JABBER_CONNECTED); mock_current_win_type(WIN_CHAT); + ProfChatWin *chatwin = malloc(sizeof(ProfChatWin)); + chatwin->barejid = strdup(recipient); + mock_ui_get_current_chat(chatwin); + ui_current_win_is_otr_returns(FALSE); otr_key_loaded_returns(TRUE); otr_start_query_returns(query_message); - message_send_chat_expect(query_message, recipient); + message_send_chat_expect(chatwin->barejid, query_message); gboolean result = cmd_otr(args, *help); assert_true(result); free(help); + free(chatwin->barejid); + free(chatwin); } #else diff --git a/tests/ui/mock_ui.c b/tests/ui/mock_ui.c index 2f4b407e..e2327388 100644 --- a/tests/ui/mock_ui.c +++ b/tests/ui/mock_ui.c @@ -93,6 +93,12 @@ win_type_t _mock_ui_current_win_type(void) return (win_type_t)mock(); } +static +ProfChatWin * _mock_ui_get_current_chat(void) +{ + return (ProfChatWin*)mock(); +} + static void _mock_ui_handle_error(const char * const err_msg) { @@ -394,6 +400,13 @@ mock_current_win_type(win_type_t type) will_return(_mock_ui_current_win_type, type); } +void +mock_ui_get_current_chat(ProfChatWin *chatwin) +{ + ui_get_current_chat = _mock_ui_get_current_chat; + will_return(_mock_ui_get_current_chat, chatwin); +} + void ui_current_print_formatted_line_expect(char show_char, int attrs, char *message) { diff --git a/tests/ui/mock_ui.h b/tests/ui/mock_ui.h index 7214ca52..e68ba6dc 100644 --- a/tests/ui/mock_ui.h +++ b/tests/ui/mock_ui.h @@ -47,6 +47,8 @@ void mock_ui_ask_password_returns(char *password); void mock_current_win_type(win_type_t type); +void mock_ui_get_current_chat(ProfChatWin *chatwin); + void mock_ui_current_recipient(void); void ui_current_recipient_returns(char *jid); diff --git a/tests/xmpp/mock_xmpp.c b/tests/xmpp/mock_xmpp.c index 76fb0ac6..a9987b57 100644 --- a/tests/xmpp/mock_xmpp.c +++ b/tests/xmpp/mock_xmpp.c @@ -292,8 +292,8 @@ void message_send_chat_expect(char *recipient, char *message) { message_send_chat = _mock_message_send_chat; - expect_string(_mock_message_send, recipient, recipient); - expect_string(_mock_message_send, msg, message); + expect_string(_mock_message_send_chat, recipient, recipient); + expect_string(_mock_message_send_chat, msg, message); } void