diff options
Diffstat (limited to 'tests/test_server_events.c')
-rw-r--r-- | tests/test_server_events.c | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/tests/test_server_events.c b/tests/test_server_events.c index e8a1de33..547e3d70 100644 --- a/tests/test_server_events.c +++ b/tests/test_server_events.c @@ -8,6 +8,7 @@ #include "server_events.h" #include "roster_list.h" +#include "chat_session.h" #include "config/preferences.h" #include "ui/ui.h" #include "ui/mock_ui.h" @@ -108,8 +109,46 @@ void console_shows_dnd_presence_when_set_all(void **state) void handle_message_stanza_error_when_no_from(void **state) { char *err_msg = "Some error."; - mock_ui_handle_error(); + expect_ui_handle_error(err_msg); handle_message_error(NULL, "cancel", err_msg); } + +void handle_message_stanza_error_from_cancel(void **state) +{ + char *err_msg = "Some error."; + char *from = "bob@server.com"; + prefs_set_boolean(PREF_STATES, FALSE); + chat_sessions_init(); + + expect_ui_handle_recipient_not_found(from, err_msg); + + handle_message_error(from, "cancel", err_msg); +} + +void handle_message_stanza_error_from_cancel_disables_chat_session(void **state) +{ + char *err_msg = "Some error."; + char *from = "bob@server.com"; + stub_ui_handle_recipient_not_found(); + prefs_set_boolean(PREF_STATES, TRUE); + chat_sessions_init(); + chat_session_start(from, TRUE); + + handle_message_error(from, "cancel", err_msg); + gboolean chat_session_supported = chat_session_get_recipient_supports(from); + + assert_false(chat_session_supported); + chat_sessions_clear(); +} + +void handle_message_stanza_error_from_no_type(void **state) +{ + char *err_msg = "Some error."; + char *from = "bob@server.com"; + + expect_ui_handle_recipient_error(from, err_msg); + + handle_message_error(from, NULL, err_msg); +} |