diff options
author | James Booth <boothj5@gmail.com> | 2016-01-05 01:30:32 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2016-01-05 01:30:32 +0000 |
commit | e1e0fda8b307270045a744f1325e8d88032f65b9 (patch) | |
tree | 97350cd39b427724931dfe6c78187c4db3a37e65 | |
parent | 8e9bf083895ba7101115594a39dace62a59ab28f (diff) | |
download | profani-tty-e1e0fda8b307270045a744f1325e8d88032f65b9.tar.gz |
Call UI disconnect functions before disconnecting with /disconnect
fixes #703
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | src/event/client_events.c | 4 | ||||
-rw-r--r-- | tests/functionaltests/functionaltests.c | 3 | ||||
-rw-r--r-- | tests/functionaltests/test_disconnect.c | 24 | ||||
-rw-r--r-- | tests/functionaltests/test_disconnect.h | 1 |
5 files changed, 31 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am index 2452451c..c61315f8 100644 --- a/Makefile.am +++ b/Makefile.am @@ -115,6 +115,7 @@ functionaltest_sources = \ tests/functionaltests/test_roster.c tests/functionaltests/test_roster.h \ tests/functionaltests/test_software.c tests/functionaltests/test_software.h \ tests/functionaltests/test_muc.c tests/functionaltests/test_muc.h \ + tests/functionaltests/test_disconnect.c tests/functionaltests/test_disconnect.h \ tests/functionaltests/functionaltests.c main_source = src/main.c diff --git a/src/event/client_events.c b/src/event/client_events.c index b2efd491..94bf6e8d 100644 --- a/src/event/client_events.c +++ b/src/event/client_events.c @@ -73,13 +73,13 @@ cl_ev_disconnect(void) const char *jid = jabber_get_fulljid(); cons_show("%s logged out successfully.", jid); + ui_disconnected(); + ui_close_all_wins(); jabber_disconnect(); roster_clear(); muc_invites_clear(); chat_sessions_clear(); tlscerts_clear_current(); - ui_disconnected(); - ui_close_all_wins(); #ifdef HAVE_LIBGPGME p_gpg_on_disconnect(); #endif diff --git a/tests/functionaltests/functionaltests.c b/tests/functionaltests/functionaltests.c index 751306c0..878561dc 100644 --- a/tests/functionaltests/functionaltests.c +++ b/tests/functionaltests/functionaltests.c @@ -21,6 +21,7 @@ #include "test_roster.h" #include "test_software.h" #include "test_muc.h" +#include "test_disconnect.h" #define PROF_FUNC_TEST(test) unit_test_setup_teardown(test, init_prof_test, close_prof_test) @@ -98,6 +99,8 @@ int main(int argc, char* argv[]) { PROF_FUNC_TEST(shows_all_messages_in_console_when_window_not_focussed), PROF_FUNC_TEST(shows_first_message_in_console_when_window_not_focussed), PROF_FUNC_TEST(shows_no_message_in_console_when_window_not_focussed), + + PROF_FUNC_TEST(disconnect_ends_session), }; return run_tests(all_tests); diff --git a/tests/functionaltests/test_disconnect.c b/tests/functionaltests/test_disconnect.c new file mode 100644 index 00000000..7529da18 --- /dev/null +++ b/tests/functionaltests/test_disconnect.c @@ -0,0 +1,24 @@ +#include <glib.h> +#include <stdarg.h> +#include <stddef.h> +#include <setjmp.h> +#include <cmocka.h> +#include <stdlib.h> +#include <string.h> + +#include <stabber.h> +#include <expect.h> + +#include "proftest.h" + +void +disconnect_ends_session(void **state) +{ + prof_connect(); + + prof_input("/disconnect"); + assert_true(prof_output_exact("stabber@localhost/profanity logged out successfully.")); + + prof_input("/roster"); + assert_true(prof_output_exact("You are not currently connected.")); +} diff --git a/tests/functionaltests/test_disconnect.h b/tests/functionaltests/test_disconnect.h new file mode 100644 index 00000000..2024269a --- /dev/null +++ b/tests/functionaltests/test_disconnect.h @@ -0,0 +1 @@ +void disconnect_ends_session(void **state); |