about summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/functionaltests/functionaltests.c3
-rw-r--r--tests/functionaltests/test_disconnect.c24
-rw-r--r--tests/functionaltests/test_disconnect.h1
3 files changed, 28 insertions, 0 deletions
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);