diff options
Diffstat (limited to 'tests/test_cmd_disconnect.c')
-rw-r--r-- | tests/test_cmd_disconnect.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/test_cmd_disconnect.c b/tests/test_cmd_disconnect.c new file mode 100644 index 00000000..68253820 --- /dev/null +++ b/tests/test_cmd_disconnect.c @@ -0,0 +1,37 @@ +#include <stdarg.h> +#include <stddef.h> +#include <setjmp.h> +#include <cmocka.h> +#include <stdlib.h> +#include <string.h> + +#include "chat_session.h" +#include "command/commands.h" +#include "xmpp/xmpp.h" +#include "roster_list.h" + +#include "ui/stub_ui.h" + +void clears_chat_sessions(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + + chat_sessions_init(); + roster_init(); + chat_session_recipient_active("bob@server.org", "laptop", FALSE); + chat_session_recipient_active("mike@server.org", "work", FALSE); + + will_return(jabber_get_connection_status, JABBER_CONNECTED); + will_return(jabber_get_fulljid, "myjid@myserver.com"); + expect_any_cons_show(); + + gboolean result = cmd_disconnect(NULL, *help); + + assert_true(result); + + ChatSession *session1 = chat_session_get("bob@server.org"); + ChatSession *session2 = chat_session_get("mike@server.org"); + assert_null(session1); + assert_null(session2); + free(help); +} \ No newline at end of file |