about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-05-26 23:22:05 +0100
committerJames Booth <boothj5@gmail.com>2015-05-26 23:22:05 +0100
commite2fa67faff94bd4cb867837632c59dfa0d633c87 (patch)
treecffb0d6d4bff9e4afb0a4d00491d179113295531
parentc2fde7c2639f318f8d4839955e7b7e17456e0564 (diff)
downloadprofani-tty-e2fa67faff94bd4cb867837632c59dfa0d633c87.tar.gz
Use libexpect in stabber test
-rw-r--r--Makefile.am40
-rw-r--r--expecttest.c2
-rw-r--r--stabbertests/checkers/checkers.c26
-rw-r--r--stabbertests/checkers/checkers.h6
-rw-r--r--stabbertests/proftest.c78
-rw-r--r--stabbertests/proftest.h5
-rw-r--r--stabbertests/stabbertestsuite.c48
-rw-r--r--stabbertests/test_connect.c444
-rw-r--r--stabbertests/test_connect.h16
-rw-r--r--stabbertests/ui/stub_ui.c511
-rw-r--r--stabbertests/ui/stub_ui.h6
11 files changed, 278 insertions, 904 deletions
diff --git a/Makefile.am b/Makefile.am
index 8fdb5c54..34ec30d2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -95,42 +95,7 @@ test_sources = \
 	tests/testsuite.c
 
 stabbertest_sources = \
-	src/contact.c src/contact.h src/log.c src/common.c \
-	src/log.h src/profanity.c src/common.h \
-	src/profanity.h src/chat_session.c \
-	src/chat_session.h src/muc.c src/muc.h src/jid.h src/jid.c \
-	src/chat_state.h src/chat_state.c \
-	src/resource.c src/resource.h \
-	src/roster_list.c src/roster_list.h \
-	src/xmpp/xmpp.h src/xmpp/capabilities.c src/xmpp/connection.c \
-	src/xmpp/iq.c src/xmpp/message.c src/xmpp/presence.c src/xmpp/stanza.c \
-	src/xmpp/stanza.h src/xmpp/message.h src/xmpp/iq.h src/xmpp/presence.h \
-	src/xmpp/capabilities.h src/xmpp/connection.h \
-	src/xmpp/roster.c src/xmpp/roster.h \
-	src/xmpp/bookmark.c src/xmpp/bookmark.h \
-	src/xmpp/form.c src/xmpp/form.h \
-	src/event/server_events.c src/event/server_events.h \
-	src/event/client_events.c src/event/client_events.h \
-	src/event/ui_events.c src/event/ui_events.h \
-	src/ui/ui.h src/ui/window.c src/ui/window.h \
-	src/ui/windows.c src/ui/windows.h \
-	src/ui/buffer.c src/ui/buffer.h \
-	src/ui/statusbar.c src/ui/statusbar.h \
-	src/ui/inputwin.c src/ui/inputwin.h \
-	src/command/command.h src/command/command.c \
-	src/command/commands.h src/command/commands.c \
-	src/tools/parser.c \
-	src/tools/parser.h \
-	src/tools/p_sha1.h src/tools/p_sha1.c \
-	src/tools/autocomplete.c src/tools/autocomplete.h \
-	src/tools/tinyurl.c src/tools/tinyurl.h \
-	src/config/accounts.c src/config/accounts.h \
-	src/config/account.c src/config/account.h \
-	src/config/preferences.c src/config/preferences.h \
-	src/config/theme.c src/config/theme.h \
-	stabbertests/ui/stub_ui.c \
 	stabbertests/proftest.c stabbertests/proftest.h \
-	stabbertests/checkers/checkers.c stabbertests/checkers/checkers.h \
 	stabbertests/test_connect.c stabbertests/test_connect.h \
 	stabbertests/stabbertestsuite.c
 
@@ -157,11 +122,9 @@ if BUILD_OTR
 test_sources += $(otr_test_sources)
 if BUILD_OTR3
 core_sources += $(otr3_sources)
-stabbertest_sources += $(otr3_sources)
 endif
 if BUILD_OTR4
 core_sources += $(otr4_sources)
-stabbertest_sources += $(otr4_sources)
 endif
 endif
 
@@ -180,7 +143,8 @@ check_PROGRAMS = tests/testsuite stabbertests/stabbertestsuite
 tests_testsuite_SOURCES = $(test_sources)
 tests_testsuite_LDADD = -lcmocka
 stabbertests_stabbertestsuite_SOURCES = $(stabbertest_sources)
-stabbertests_stabbertestsuite_LDADD = -lcmocka -lstabber -lpthread
+stabbertests_stabbertestsuite_CFLAGS = -I/usr/include/tcl8.6
+stabbertests_stabbertestsuite_LDADD = -lcmocka -lstabber -lexpect -ltcl
 
 man_MANS = $(man_sources)
 
diff --git a/expecttest.c b/expecttest.c
index 6e54b447..5038b7a7 100644
--- a/expecttest.c
+++ b/expecttest.c
@@ -52,8 +52,6 @@ int main(void)
         "</presence>"
     ));
 
-    stbbr_send();
-    
     write(fd, QUIT_CMD, strlen(QUIT_CMD));
     sleep(1);
     
diff --git a/stabbertests/checkers/checkers.c b/stabbertests/checkers/checkers.c
deleted file mode 100644
index 6709dc97..00000000
--- a/stabbertests/checkers/checkers.c
+++ /dev/null
@@ -1,26 +0,0 @@
-#include "resource.h"
-
-int
-resource_equal_check(void *param, void *value)
-{
-    Resource *param_res = (Resource *)param;
-    Resource *value_res = (Resource *)value;
-    
-    if (g_strcmp0(param_res->name, value_res->name) != 0) {
-        return 0;
-    }
-    
-    if (param_res->presence != value_res->presence) {
-        return 0;
-    }
-    
-    if (param_res->priority != value_res->priority) {
-        return 0;
-    }
-    
-    if (g_strcmp0(param_res->status, value_res->status) != 0) {
-        return 0;
-    }
-    
-    return 1;
-}
diff --git a/stabbertests/checkers/checkers.h b/stabbertests/checkers/checkers.h
deleted file mode 100644
index 64654c77..00000000
--- a/stabbertests/checkers/checkers.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __H_CHECKERS
-#define __H_CHECKERS
-
-int resource_equal_check(void *param, void *value);
-
-#endif
\ No newline at end of file
diff --git a/stabbertests/proftest.c b/stabbertests/proftest.c
index e3f7f6a6..65cee269 100644
--- a/stabbertests/proftest.c
+++ b/stabbertests/proftest.c
@@ -9,25 +9,10 @@
 #include <stdio.h>
 #include <unistd.h>
 #include <errno.h>
+#include <string.h>
 
 #include <stabber.h>
-
-#include "config.h"
-
-#include "config/preferences.h"
-#include "log.h"
-#include "xmpp/xmpp.h"
-#include "command/command.h"
-#include "roster_list.h"
-#include "ui/windows.h"
-
-#ifdef HAVE_GIT_VERSION
-#include "gitversion.h"
-#endif
-
-#ifdef HAVE_LIBOTR
-#include "otr/otr.h"
-#endif
+#include <expect.h>
 
 #define XDG_CONFIG_HOME "./stabbertests/files/xdg_config_home"
 #define XDG_DATA_HOME   "./stabbertests/files/xdg_data_home"
@@ -35,16 +20,6 @@
 char *config_orig;
 char *data_orig;
 
-void
-prof_process_xmpp(int loops)
-{
-    int i = 0;
-    while (i < loops) {
-        jabber_process_events(10);
-        i++;
-    }
-}
-
 gboolean
 _create_dir(char *name)
 {
@@ -72,7 +47,7 @@ _mkdir_recursive(const char *dir)
     for (i = 1; i <= strlen(dir); i++) {
         if (dir[i] == '/' || dir[i] == '\0') {
             gchar *next_dir = g_strndup(dir, i);
-            result = create_dir(next_dir);
+            result = _create_dir(next_dir);
             g_free(next_dir);
             if (!result) {
                 break;
@@ -147,6 +122,8 @@ _cleanup_dirs(void)
 void
 init_prof_test(void **state)
 {
+    exp_timeout = 2;
+
     if (stbbr_start(5230) != 0) {
         assert_true(FALSE);
         return;
@@ -164,56 +141,11 @@ init_prof_test(void **state)
     _create_data_dir();
     _create_chatlogs_dir();
     _create_logs_dir();
-
-    log_level_t prof_log_level = log_level_from_string("DEBUG");
-    prefs_load();
-    log_init(prof_log_level);
-    if (strcmp(PACKAGE_STATUS, "development") == 0) {
-#ifdef HAVE_GIT_VERSION
-            log_info("Starting Profanity (%sdev.%s.%s)...", PACKAGE_VERSION, PROF_GIT_BRANCH, PROF_GIT_REVISION);
-#else
-            log_info("Starting Profanity (%sdev)...", PACKAGE_VERSION);
-#endif
-    } else {
-        log_info("Starting Profanity (%s)...", PACKAGE_VERSION);
-    }
-    chat_log_init();
-    groupchat_log_init();
-    accounts_load();
-    char *theme = prefs_get_string(PREF_THEME);
-    theme_init(theme);
-    prefs_free_string(theme);
-    jabber_init(FALSE);
-    cmd_init();
-    log_info("Initialising contact list");
-    roster_init();
-    muc_init();
-#ifdef HAVE_LIBOTR
-    otr_init();
-#endif
-    wins_init();
 }
 
 void
 close_prof_test(void **state)
 {
-    jabber_disconnect();
-    prof_process_xmpp(20);
-    jabber_shutdown();
-    roster_free();
-    muc_close();
-    caps_close();
-#ifdef HAVE_LIBOTR
-    otr_shutdown();
-#endif
-    chat_log_close();
-    prefs_close();
-    theme_close();
-    accounts_close();
-    cmd_uninit();
-    log_close();
-    reset_unique_id();
-
     _cleanup_dirs();
 
     setenv("XDG_CONFIG_HOME", config_orig, 1);
diff --git a/stabbertests/proftest.h b/stabbertests/proftest.h
index 7d95db93..da573821 100644
--- a/stabbertests/proftest.h
+++ b/stabbertests/proftest.h
@@ -1,8 +1,11 @@
 #ifndef __H_PROFTEST
 #define __H_PROFTEST
 
+#define XDG_CONFIG_HOME "./stabbertests/files/xdg_config_home"
+#define XDG_DATA_HOME   "./stabbertests/files/xdg_data_home"
+
 void init_prof_test(void **state);
 void close_prof_test(void **state);
 void prof_process_xmpp(int loops);
 
-#endif
\ No newline at end of file
+#endif
diff --git a/stabbertests/stabbertestsuite.c b/stabbertests/stabbertestsuite.c
index a54b94dc..86d5b192 100644
--- a/stabbertests/stabbertestsuite.c
+++ b/stabbertests/stabbertestsuite.c
@@ -19,30 +19,30 @@ int main(int argc, char* argv[]) {
         unit_test_setup_teardown(connect_jid,
             init_prof_test,
             close_prof_test),
-        unit_test_setup_teardown(connect_jid_requests_roster,
-            init_prof_test,
-            close_prof_test),
-        unit_test_setup_teardown(connect_jid_sends_presence_after_receiving_roster,
-            init_prof_test,
-            close_prof_test),
-        unit_test_setup_teardown(connect_jid_requests_bookmarks,
-            init_prof_test,
-            close_prof_test),
-        unit_test_setup_teardown(connect_bad_password,
-            init_prof_test,
-            close_prof_test),
-        unit_test_setup_teardown(show_presence_updates,
-            init_prof_test,
-            close_prof_test),
-        unit_test_setup_teardown(sends_rooms_iq,
-            init_prof_test,
-            close_prof_test),
-        unit_test_setup_teardown(multiple_pings,
-            init_prof_test,
-            close_prof_test),
-        unit_test_setup_teardown(responds_to_ping,
-            init_prof_test,
-            close_prof_test),
+//        unit_test_setup_teardown(connect_jid_requests_roster,
+//            init_prof_test,
+//            close_prof_test),
+//        unit_test_setup_teardown(connect_jid_sends_presence_after_receiving_roster,
+//            init_prof_test,
+//            close_prof_test),
+//        unit_test_setup_teardown(connect_jid_requests_bookmarks,
+//            init_prof_test,
+//            close_prof_test),
+//        unit_test_setup_teardown(connect_bad_password,
+//            init_prof_test,
+//            close_prof_test),
+//        unit_test_setup_teardown(show_presence_updates,
+//            init_prof_test,
+//            close_prof_test),
+//        unit_test_setup_teardown(sends_rooms_iq,
+//            init_prof_test,
+//            close_prof_test),
+//        unit_test_setup_teardown(multiple_pings,
+//            init_prof_test,
+//            close_prof_test),
+//        unit_test_setup_teardown(responds_to_ping,
+//            init_prof_test,
+//            close_prof_test),
     };
 
     return run_tests(all_tests);
diff --git a/stabbertests/test_connect.c b/stabbertests/test_connect.c
index 759dc4e5..c24e20eb 100644
--- a/stabbertests/test_connect.c
+++ b/stabbertests/test_connect.c
@@ -7,105 +7,16 @@
 #include <string.h>
 
 #include <stabber.h>
+#include <expect.h>
 
 #include "proftest.h"
-#include "checkers/checkers.h"
-#include "xmpp/xmpp.h"
-#include "ui/stub_ui.h"
-#include "ui/window.h"
-#include "command/command.h"
 
-void
-connect_jid(void **state)
-{
-    will_return(ui_ask_password, strdup("password"));
-    expect_cons_show("Connecting as stabber@localhost");
-
-    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
-    prof_process_xmpp(20);
-
-    jabber_conn_status_t status = jabber_get_connection_status();
-    assert_true(status == JABBER_CONNECTED);
-}
-
-void
-connect_jid_requests_roster(void **state)
-{
-    will_return(ui_ask_password, strdup("password"));
-    expect_any_cons_show();
-
-    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
-    prof_process_xmpp(20);
-
-    assert_true(stbbr_verify(
-        "<iq id=\"*\" type=\"get\"><query xmlns=\"jabber:iq:roster\"/></iq>"
-    ));
-}
-
-void
-connect_jid_sends_presence_after_receiving_roster(void **state)
-{
-    will_return(ui_ask_password, strdup("password"));
-    expect_any_cons_show();
-
-    stbbr_for("roster",
-        "<iq id=\"roster\" type=\"result\" to=\"stabber@localhost/profanity\">"
-            "<query xmlns=\"jabber:iq:roster\" ver=\"362\">"
-                "<item jid=\"buddy1@localhost\" subscription=\"both\" name=\"Buddy1\"/>"
-                "<item jid=\"buddy2@localhost\" subscription=\"both\" name=\"Buddy2\"/>"
-            "</query>"
-        "</iq>"
-    );
-
-    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
-    prof_process_xmpp(20);
-
-    assert_true(stbbr_verify(
-        "<presence id=\"*\">"
-            "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>"
-        "</presence>"
-    ));
-}
+#define CONNECT_CMD "/connect stabber@localhost port 5230\r"
+#define PASSWORD    "password\r"
 
 void
-connect_jid_requests_bookmarks(void **state)
-{
-    will_return(ui_ask_password, strdup("password"));
-    expect_any_cons_show();
-
-    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
-    prof_process_xmpp(20);
-
-    assert_true(stbbr_verify(
-        "<iq id=\"*\" type=\"get\">"
-            "<query xmlns=\"jabber:iq:private\">"
-                "<storage xmlns=\"storage:bookmarks\"/>"
-            "</query>"
-        "</iq>"
-    ));
-}
-
-void
-connect_bad_password(void **state)
-{
-    will_return(ui_ask_password, strdup("badpassword"));
-
-    expect_cons_show("Connecting as stabber@localhost");
-    expect_cons_show_error("Login failed.");
-
-    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
-    prof_process_xmpp(20);
-
-    jabber_conn_status_t status = jabber_get_connection_status();
-    assert_true(status == JABBER_DISCONNECTED);
-}
-
-void
-show_presence_updates(void **state)
+connect_jid(void **state)
 {
-    will_return(ui_ask_password, strdup("password"));
-    expect_any_cons_show();
-
     stbbr_for("roster",
         "<iq id=\"roster\" type=\"result\" to=\"stabber@localhost/profanity\">"
             "<query xmlns=\"jabber:iq:roster\" ver=\"362\">"
@@ -115,128 +26,243 @@ show_presence_updates(void **state)
         "</iq>"
     );
 
-    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
-    prof_process_xmpp(20);
-    
-    stbbr_send(
-        "<presence to=\"stabber@localhost\" from=\"buddy1@localhost/mobile\">"
-            "<show>dnd</show>"
-            "<status>busy!</status>"
-        "</presence>"
-        "<presence to=\"stabber@localhost\" from=\"buddy1@localhost/laptop\">"
-            "<show>chat</show>"
-            "<status>Talk to me!</status>"
-        "</presence>"
-        "<presence to=\"stabber@localhost\" from=\"buddy2@localhost/work\">"
-            "<show>away</show>"
-            "<status>Out of office</status>"
-        "</presence>"
-    );
-    
-    Resource *resource1 = resource_new("mobile", RESOURCE_DND, "busy!", 0);
-    expect_string(ui_contact_online, barejid, "buddy1@localhost");
-    expect_check(ui_contact_online, resource, (CheckParameterValue)resource_equal_check, resource1);
-    expect_value(ui_contact_online, last_activity, NULL);
+    int res = 0;
+    int fd = exp_spawnl("./profanity", NULL);
+    FILE *fp = fdopen(fd, "r+");
 
-    Resource *resource2 = resource_new("laptop", RESOURCE_CHAT, "Talk to me!", 0);
-    expect_string(ui_contact_online, barejid, "buddy1@localhost");
-    expect_check(ui_contact_online, resource, (CheckParameterValue)resource_equal_check, resource2);
-    expect_value(ui_contact_online, last_activity, NULL);
-
-    Resource *resource3 = resource_new("work", RESOURCE_AWAY, "Out of office", 0);
-    expect_string(ui_contact_online, barejid, "buddy2@localhost");
-    expect_check(ui_contact_online, resource, (CheckParameterValue)resource_equal_check, resource3);
-    expect_value(ui_contact_online, last_activity, NULL);
-
-    prof_process_xmpp(20);
-}
-
-void
-sends_rooms_iq(void **state)
-{
-    will_return(ui_ask_password, strdup("password"));
+    if (fp == NULL) {
+        assert_true(FALSE);
+    }
 
-    expect_any_cons_show();
+    setbuf(fp, (char *)0);
 
-    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
-    prof_process_xmpp(20);
-
-    stbbr_for("confreq",
-        "<iq id=\"confreq\" type=\"result\" to=\"stabber@localhost/profanity\" from=\"conference.localhost\">"
-            "<query xmlns=\"http://jabber.org/protocol/disco#items\">"
-                "<item jid=\"chatroom@conference.localhost\" name=\"A chat room\"/>"
-                "<item jid=\"hangout@conference.localhost\" name=\"Another chat room\"/>"
-            "</query>"
-        "</iq>"
-    );
-
-    cmd_process_input(strdup("/rooms"));
-    prof_process_xmpp(20);
-
-    assert_true(stbbr_verify_last(
-        "<iq id=\"confreq\" to=\"conference.localhost\" type=\"get\">"
-            "<query xmlns=\"http://jabber.org/protocol/disco#items\"/>"
-        "</iq>"
-    ));
-}
-
-void
-multiple_pings(void **state)
-{
-    will_return(ui_ask_password, strdup("password"));
+    write(fd, CONNECT_CMD, strlen(CONNECT_CMD));
+    res = exp_expectl(fd, exp_exact, "Enter password:", 11, exp_end);
+    assert_true(res == 11);
 
-    expect_any_cons_show();
-
-    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
-    prof_process_xmpp(20);
-
-    expect_cons_show("Pinged server...");
-    expect_any_cons_show();
-    expect_cons_show("Pinged server...");
-    expect_any_cons_show();
-
-    stbbr_for("prof_ping_1",
-        "<iq id=\"prof_ping_1\" type=\"result\" to=\"stabber@localhost/profanity\"/>"
-    );
-    stbbr_for("prof_ping_2",
-        "<iq id=\"prof_ping_2\" type=\"result\" to=\"stabber@localhost/profanity\"/>"
-    );
-
-    cmd_process_input(strdup("/ping"));
-    prof_process_xmpp(20);
-    cmd_process_input(strdup("/ping"));
-    prof_process_xmpp(20);
+    write(fd, PASSWORD, strlen(PASSWORD));
+    res = exp_expectl(fd, exp_exact, "Connecting as stabber@localhost", 12, exp_end);
+    assert_true(res == 12);
+    res = exp_expectl(fd, exp_exact, "stabber@localhost logged in successfully", 13, exp_end);
+    assert_true(res == 13);
 
+    sleep(1);
     assert_true(stbbr_verify(
-        "<iq id=\"prof_ping_1\" type=\"get\">"
-            "<ping xmlns=\"urn:xmpp:ping\"/>"
-        "</iq>"
-    ));
-    assert_true(stbbr_verify(
-        "<iq id=\"prof_ping_2\" type=\"get\">"
-            "<ping xmlns=\"urn:xmpp:ping\"/>"
-        "</iq>"
+        "<presence id=\"*\">"
+            "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>"
+        "</presence>"
     ));
 }
 
-void
-responds_to_ping(void **state)
-{
-    will_return(ui_ask_password, strdup("password"));
-
-    expect_any_cons_show();
-
-    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
-    prof_process_xmpp(20);
-
-    stbbr_send(
-        "<iq id=\"ping1\" type=\"get\" to=\"stabber@localhost/profanity\" from=\"localhost\">"
-            "<ping xmlns=\"urn:xmpp:ping\"/>"
-        "</iq>"
-    );
-    prof_process_xmpp(20);
-
-    assert_true(stbbr_verify(
-        "<iq id=\"ping1\" type=\"result\" from=\"stabber@localhost/profanity\" to=\"localhost\"/>"
-    ));
-}
+//void
+//connect_jid_requests_roster(void **state)
+//{
+//    will_return(ui_ask_password, strdup("password"));
+//    expect_any_cons_show();
+//
+//    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
+//    prof_process_xmpp(20);
+//
+//    assert_true(stbbr_verify(
+//        "<iq id=\"*\" type=\"get\"><query xmlns=\"jabber:iq:roster\"/></iq>"
+//    ));
+//}
+//
+//void
+//connect_jid_sends_presence_after_receiving_roster(void **state)
+//{
+//    will_return(ui_ask_password, strdup("password"));
+//    expect_any_cons_show();
+//
+//    stbbr_for("roster",
+//        "<iq id=\"roster\" type=\"result\" to=\"stabber@localhost/profanity\">"
+//            "<query xmlns=\"jabber:iq:roster\" ver=\"362\">"
+//                "<item jid=\"buddy1@localhost\" subscription=\"both\" name=\"Buddy1\"/>"
+//                "<item jid=\"buddy2@localhost\" subscription=\"both\" name=\"Buddy2\"/>"
+//            "</query>"
+//        "</iq>"
+//    );
+//
+//    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
+//    prof_process_xmpp(20);
+//
+//    assert_true(stbbr_verify(
+//        "<presence id=\"*\">"
+//            "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>"
+//        "</presence>"
+//    ));
+//}
+//
+//void
+//connect_jid_requests_bookmarks(void **state)
+//{
+//    will_return(ui_ask_password, strdup("password"));
+//    expect_any_cons_show();
+//
+//    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
+//    prof_process_xmpp(20);
+//
+//    assert_true(stbbr_verify(
+//        "<iq id=\"*\" type=\"get\">"
+//            "<query xmlns=\"jabber:iq:private\">"
+//                "<storage xmlns=\"storage:bookmarks\"/>"
+//            "</query>"
+//        "</iq>"
+//    ));
+//}
+//
+//void
+//connect_bad_password(void **state)
+//{
+//    will_return(ui_ask_password, strdup("badpassword"));
+//
+//    expect_cons_show("Connecting as stabber@localhost");
+//    expect_cons_show_error("Login failed.");
+//
+//    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
+//    prof_process_xmpp(20);
+//
+//    jabber_conn_status_t status = jabber_get_connection_status();
+//    assert_true(status == JABBER_DISCONNECTED);
+//}
+//
+//void
+//show_presence_updates(void **state)
+//{
+//    will_return(ui_ask_password, strdup("password"));
+//    expect_any_cons_show();
+//
+//    stbbr_for("roster",
+//        "<iq id=\"roster\" type=\"result\" to=\"stabber@localhost/profanity\">"
+//            "<query xmlns=\"jabber:iq:roster\" ver=\"362\">"
+//                "<item jid=\"buddy1@localhost\" subscription=\"both\" name=\"Buddy1\"/>"
+//                "<item jid=\"buddy2@localhost\" subscription=\"both\" name=\"Buddy2\"/>"
+//            "</query>"
+//        "</iq>"
+//    );
+//
+//    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
+//    prof_process_xmpp(20);
+//
+//    stbbr_send(
+//        "<presence to=\"stabber@localhost\" from=\"buddy1@localhost/mobile\">"
+//            "<show>dnd</show>"
+//            "<status>busy!</status>"
+//        "</presence>"
+//        "<presence to=\"stabber@localhost\" from=\"buddy1@localhost/laptop\">"
+//            "<show>chat</show>"
+//            "<status>Talk to me!</status>"
+//        "</presence>"
+//        "<presence to=\"stabber@localhost\" from=\"buddy2@localhost/work\">"
+//            "<show>away</show>"
+//            "<status>Out of office</status>"
+//        "</presence>"
+//    );
+//
+//    Resource *resource1 = resource_new("mobile", RESOURCE_DND, "busy!", 0);
+//    expect_string(ui_contact_online, barejid, "buddy1@localhost");
+//    expect_check(ui_contact_online, resource, (CheckParameterValue)resource_equal_check, resource1);
+//    expect_value(ui_contact_online, last_activity, NULL);
+//
+//    Resource *resource2 = resource_new("laptop", RESOURCE_CHAT, "Talk to me!", 0);
+//    expect_string(ui_contact_online, barejid, "buddy1@localhost");
+//    expect_check(ui_contact_online, resource, (CheckParameterValue)resource_equal_check, resource2);
+//    expect_value(ui_contact_online, last_activity, NULL);
+//
+//    Resource *resource3 = resource_new("work", RESOURCE_AWAY, "Out of office", 0);
+//    expect_string(ui_contact_online, barejid, "buddy2@localhost");
+//    expect_check(ui_contact_online, resource, (CheckParameterValue)resource_equal_check, resource3);
+//    expect_value(ui_contact_online, last_activity, NULL);
+//
+//    prof_process_xmpp(20);
+//}
+//
+//void
+//sends_rooms_iq(void **state)
+//{
+//    will_return(ui_ask_password, strdup("password"));
+//
+//    expect_any_cons_show();
+//
+//    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
+//    prof_process_xmpp(20);
+//
+//    stbbr_for("confreq",
+//        "<iq id=\"confreq\" type=\"result\" to=\"stabber@localhost/profanity\" from=\"conference.localhost\">"
+//            "<query xmlns=\"http://jabber.org/protocol/disco#items\">"
+//                "<item jid=\"chatroom@conference.localhost\" name=\"A chat room\"/>"
+//                "<item jid=\"hangout@conference.localhost\" name=\"Another chat room\"/>"
+//            "</query>"
+//        "</iq>"
+//    );
+//
+//    cmd_process_input(strdup("/rooms"));
+//    prof_process_xmpp(20);
+//
+//    assert_true(stbbr_verify_last(
+//        "<iq id=\"confreq\" to=\"conference.localhost\" type=\"get\">"
+//            "<query xmlns=\"http://jabber.org/protocol/disco#items\"/>"
+//        "</iq>"
+//    ));
+//}
+//
+//void
+//multiple_pings(void **state)
+//{
+//    will_return(ui_ask_password, strdup("password"));
+//
+//    expect_any_cons_show();
+//
+//    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
+//    prof_process_xmpp(20);
+//
+//    expect_cons_show("Pinged server...");
+//    expect_any_cons_show();
+//    expect_cons_show("Pinged server...");
+//    expect_any_cons_show();
+//
+//    stbbr_for("prof_ping_1",
+//        "<iq id=\"prof_ping_1\" type=\"result\" to=\"stabber@localhost/profanity\"/>"
+//    );
+//    stbbr_for("prof_ping_2",
+//        "<iq id=\"prof_ping_2\" type=\"result\" to=\"stabber@localhost/profanity\"/>"
+//    );
+//
+//    cmd_process_input(strdup("/ping"));
+//    prof_process_xmpp(20);
+//    cmd_process_input(strdup("/ping"));
+//    prof_process_xmpp(20);
+//
+//    assert_true(stbbr_verify(
+//        "<iq id=\"prof_ping_1\" type=\"get\">"
+//            "<ping xmlns=\"urn:xmpp:ping\"/>"
+//        "</iq>"
+//    ));
+//    assert_true(stbbr_verify(
+//        "<iq id=\"prof_ping_2\" type=\"get\">"
+//            "<ping xmlns=\"urn:xmpp:ping\"/>"
+//        "</iq>"
+//    ));
+//}
+//
+//void
+//responds_to_ping(void **state)
+//{
+//    will_return(ui_ask_password, strdup("password"));
+//
+//    expect_any_cons_show();
+//
+//    cmd_process_input(strdup("/connect stabber@localhost port 5230"));
+//    prof_process_xmpp(20);
+//
+//    stbbr_send(
+//        "<iq id=\"ping1\" type=\"get\" to=\"stabber@localhost/profanity\" from=\"localhost\">"
+//            "<ping xmlns=\"urn:xmpp:ping\"/>"
+//        "</iq>"
+//    );
+//    prof_process_xmpp(20);
+//
+//    assert_true(stbbr_verify(
+//        "<iq id=\"ping1\" type=\"result\" from=\"stabber@localhost/profanity\" to=\"localhost\"/>"
+//    ));
+//}
diff --git a/stabbertests/test_connect.h b/stabbertests/test_connect.h
index 971652b0..d2d4dbee 100644
--- a/stabbertests/test_connect.h
+++ b/stabbertests/test_connect.h
@@ -1,9 +1,9 @@
 void connect_jid(void **state);
-void connect_jid_requests_roster(void **state);
-void connect_jid_sends_presence_after_receiving_roster(void **state);
-void connect_jid_requests_bookmarks(void **state);
-void connect_bad_password(void **state);
-void show_presence_updates(void **state);
-void sends_rooms_iq(void **state);
-void multiple_pings(void **state);
-void responds_to_ping(void **state);
+//void connect_jid_requests_roster(void **state);
+//void connect_jid_sends_presence_after_receiving_roster(void **state);
+//void connect_jid_requests_bookmarks(void **state);
+//void connect_bad_password(void **state);
+//void show_presence_updates(void **state);
+//void sends_rooms_iq(void **state);
+//void multiple_pings(void **state);
+//void responds_to_ping(void **state);
diff --git a/stabbertests/ui/stub_ui.c b/stabbertests/ui/stub_ui.c
deleted file mode 100644
index b75cbe12..00000000
--- a/stabbertests/ui/stub_ui.c
+++ /dev/null
@@ -1,511 +0,0 @@
-#include <glib.h>
-#include <wchar.h>
-
-#include <setjmp.h>
-#include <cmocka.h>
-
-#include "ui/window.h"
-#include "ui/ui.h"
-
-#include "tests/ui/stub_ui.h"
-
-// mock state
-
-static char output[256];
-
-void
-expect_cons_show(char *expected)
-{
-    expect_string(cons_show, output, expected);
-}
-
-void
-expect_any_cons_show(void)
-{
-    expect_any(cons_show, output);
-}
-
-void
-expect_cons_show_error(char *expected)
-{
-    expect_string(cons_show_error, output, expected);
-}
-
-void
-expect_any_cons_show_error(void)
-{
-    expect_any(cons_show_error, output);
-}
-
-void
-expect_ui_current_print_line(char *message)
-{
-    expect_string(ui_current_print_line, output, message);
-}
-
-void
-expect_ui_current_print_formatted_line(char show_char, int attrs, char *message)
-{
-    expect_value(ui_current_print_formatted_line, show_char, show_char);
-    expect_value(ui_current_print_formatted_line, attrs, attrs);
-    expect_string(ui_current_print_formatted_line, output, message);
-}
-
-// stubs
-
-void ui_init(void) {}
-void ui_load_colours(void) {}
-void ui_update(void) {}
-void ui_close(void) {}
-void ui_redraw(void) {}
-void ui_resize(void) {}
-GSList* ui_get_chat_recipients(void)
-{
-    return NULL;
-}
-
-void ui_switch_win(ProfWin *win) {}
-
-void ui_gone_secure(const char * const barejid, gboolean trusted) {}
-void ui_gone_insecure(const char * const barejid) {}
-void ui_trust(const char * const barejid) {}
-void ui_untrust(const char * const barejid) {}
-void ui_smp_recipient_initiated(const char * const barejid) {}
-void ui_smp_recipient_initiated_q(const char * const barejid, const char *question) {}
-
-void ui_smp_successful(const char * const barejid) {}
-void ui_smp_unsuccessful_sender(const char * const barejid) {}
-void ui_smp_unsuccessful_receiver(const char * const barejid) {}
-void ui_smp_aborted(const char * const barejid) {}
-
-void ui_smp_answer_success(const char * const barejid) {}
-void ui_smp_answer_failure(const char * const barejid) {}
-
-void ui_otr_authenticating(const char * const barejid) {}
-void ui_otr_authetication_waiting(const char * const recipient) {}
-void ui_sigwinch_handler(int sig) {}
-
-unsigned long ui_get_idle_time(void)
-{
-    return 0;
-}
-
-void ui_reset_idle_time(void) {}
-ProfPrivateWin* ui_new_private_win(const char * const fulljid)
-{
-    return NULL;
-}
-
-ProfChatWin* ui_new_chat_win(const char * const barejid)
-{
-    return NULL;
-}
-
-void ui_print_system_msg_from_recipient(const char * const barejid, const char *message) {}
-gint ui_unread(void)
-{
-    return 0;
-}
-
-void ui_close_connected_win(int index) {}
-int ui_close_all_wins(void)
-{
-    return 0;
-}
-
-int ui_close_read_wins(void)
-{
-    return 0;
-}
-
-// current window actions
-void ui_clear_current(void) {}
-
-win_type_t ui_current_win_type(void)
-{
-    return (win_type_t)mock();
-}
-
-gboolean ui_current_win_is_otr(void)
-{
-    return (gboolean)mock();
-}
-
-ProfChatWin *ui_get_current_chat(void)
-{
-    return (ProfChatWin*)mock();
-}
-
-void ui_current_print_line(const char * const msg, ...)
-{
-    va_list args;
-    va_start(args, msg);
-    vsnprintf(output, sizeof(output), msg, args);
-    check_expected(output);
-    va_end(args);
-}
-
-void ui_current_print_formatted_line(const char show_char, int attrs, const char * const msg, ...)
-{
-    check_expected(show_char);
-    check_expected(attrs);
-    va_list args;
-    va_start(args, msg);
-    vsnprintf(output, sizeof(output), msg, args);
-    check_expected(output);
-    va_end(args);
-}
-
-void ui_current_error_line(const char * const msg) {}
-void ui_win_error_line(ProfWin *window, const char * const msg) {}
-
-
-win_type_t ui_win_type(int index)
-{
-    return WIN_CONSOLE;
-}
-
-void ui_close_win(int index) {}
-
-int ui_win_unread(int index)
-{
-    return 0;
-}
-
-void ui_page_up(void) {}
-void ui_page_down(void) {}
-void ui_subwin_page_up(void) {}
-void ui_subwin_page_down(void) {}
-
-char * ui_ask_password(void)
-{
-    return mock_ptr_type(char *);
-}
-
-void ui_handle_stanza(const char * const msg) {}
-
-// ui events
-void ui_contact_online(char *barejid, Resource *resource, GDateTime *last_activity)
-{
-    check_expected(barejid);
-    check_expected(resource);
-    check_expected(last_activity);
-}
-
-void ui_contact_typing(const char * const barejid, const char * const resource) {}
-void ui_incoming_msg(const char * const from, const char * const resource, const char * const message, GTimeVal *tv_stamp) {}
-void ui_message_receipt(const char * const barejid, const char * const id) {}
-
-void ui_incoming_private_msg(const char * const fulljid, const char * const message, GTimeVal *tv_stamp) {}
-
-void ui_disconnected(void) {}
-void ui_recipient_gone(const char * const barejid, const char * const resource) {}
-
-void ui_outgoing_chat_msg(ProfChatWin *chatwin, const char * const message, char *id) {}
-void ui_outgoing_chat_msg_carbon(const char * const barejid, const char * const message) {}
-void ui_outgoing_private_msg(ProfPrivateWin *privwin, const char * const message) {}
-
-void ui_room_join(const char * const roomjid, gboolean focus) {}
-void ui_switch_to_room(const char * const roomjid) {}
-
-void ui_room_role_change(const char * const roomjid, const char * const role, const char * const actor,
-    const char * const reason) {}
-void ui_room_affiliation_change(const char * const roomjid, const char * const affiliation, const char * const actor,
-    const char * const reason) {}
-void ui_room_role_and_affiliation_change(const char * const roomjid, const char * const role,
-    const char * const affiliation, const char * const actor, const char * const reason) {}
-void ui_room_occupant_role_change(const char * const roomjid, const char * const nick, const char * const role,
-    const char * const actor, const char * const reason) {}
-void ui_room_occupant_affiliation_change(const char * const roomjid, const char * const nick, const char * const affiliation,
-    const char * const actor, const char * const reason) {}
-void ui_room_occupant_role_and_affiliation_change(const char * const roomjid, const char * const nick, const char * const role,
-    const char * const affiliation, const char * const actor, const char * const reason) {}
-void ui_room_roster(const char * const roomjid, GList *occupants, const char * const presence) {}
-void ui_room_history(const char * const roomjid, const char * const nick,
-    GTimeVal tv_stamp, const char * const message) {}
-void ui_room_message(const char * const roomjid, const char * const nick,
-    const char * const message) {}
-void ui_room_subject(const char * const roomjid, const char * const nick, const char * const subject) {}
-void ui_room_requires_config(const char * const roomjid) {}
-void ui_room_destroy(const char * const roomjid) {}
-void ui_show_room_info(ProfMucWin *mucwin) {}
-void ui_show_room_role_list(ProfMucWin *mucwin, muc_role_t role) {}
-void ui_show_room_affiliation_list(ProfMucWin *mucwin, muc_affiliation_t affiliation) {}
-void ui_handle_room_info_error(const char * const roomjid, const char * const error) {}
-void ui_show_room_disco_info(const char * const roomjid, GSList *identities, GSList *features) {}
-void ui_room_destroyed(const char * const roomjid, const char * const reason, const char * const new_jid,
-    const char * const password) {}
-void ui_room_kicked(const char * const roomjid, const char * const actor, const char * const reason) {}
-void ui_room_member_kicked(const char * const roomjid, const char * const nick, const char * const actor,
-    const char * const reason) {}
-void ui_room_banned(const char * const roomjid, const char * const actor, const char * const reason) {}
-void ui_room_member_banned(const char * const roomjid, const char * const nick, const char * const actor,
-    const char * const reason) {}
-void ui_leave_room(const char * const roomjid) {}
-void ui_room_broadcast(const char * const roomjid,
-    const char * const message) {}
-void ui_room_member_offline(const char * const roomjid, const char * const nick) {}
-void ui_room_member_online(const char * const roomjid, const char * const nick, const char * const roles,
-    const char * const affiliation, const char * const show, const char * const status) {}
-void ui_room_member_nick_change(const char * const roomjid,
-    const char * const old_nick, const char * const nick) {}
-void ui_room_nick_change(const char * const roomjid, const char * const nick) {}
-void ui_room_member_presence(const char * const roomjid,
-    const char * const nick, const char * const show, const char * const status) {}
-void ui_room_update_occupants(const char * const roomjid) {}
-void ui_room_show_occupants(const char * const roomjid) {}
-void ui_room_hide_occupants(const char * const roomjid) {}
-void ui_show_roster(void) {}
-void ui_hide_roster(void) {}
-void ui_roster_add(const char * const barejid, const char * const name) {}
-void ui_roster_remove(const char * const barejid) {}
-void ui_contact_already_in_group(const char * const contact, const char * const group) {}
-void ui_contact_not_in_group(const char * const contact, const char * const group) {}
-void ui_group_added(const char * const contact, const char * const group) {}
-void ui_group_removed(const char * const contact, const char * const group) {}
-void ui_chat_win_contact_online(PContact contact, Resource *resource, GDateTime *last_activity) {}
-void ui_chat_win_contact_offline(PContact contact, char *resource, char *status) {}
-gboolean ui_chat_win_exists(const char * const barejid)
-{
-    return TRUE;
-}
-
-void ui_contact_offline(char *barejid, char *resource, char *status) {}
-
-void ui_handle_recipient_not_found(const char * const recipient, const char * const err_msg)
-{
-    check_expected(recipient);
-    check_expected(err_msg);
-}
-
-void ui_handle_recipient_error(const char * const recipient, const char * const err_msg)
-{
-    check_expected(recipient);
-    check_expected(err_msg);
-}
-
-void ui_handle_error(const char * const err_msg)
-{
-    check_expected(err_msg);
-}
-
-void ui_clear_win_title(void) {}
-void ui_goodbye_title(void) {}
-void ui_handle_room_join_error(const char * const roomjid, const char * const err) {}
-void ui_handle_room_configuration(const char * const roomjid, DataForm *form) {}
-void ui_handle_room_configuration_form_error(const char * const roomjid, const char * const message) {}
-void ui_handle_room_config_submit_result(const char * const roomjid) {}
-void ui_handle_room_config_submit_result_error(const char * const roomjid, const char * const message) {}
-void ui_handle_room_affiliation_list_error(const char * const roomjid, const char * const affiliation,
-    const char * const error) {}
-void ui_handle_room_affiliation_list(const char * const roomjid, const char * const affiliation, GSList *jids) {}
-void ui_handle_room_affiliation_set_error(const char * const roomjid, const char * const jid,
-    const char * const affiliation, const char * const error) {}
-void ui_handle_room_role_set_error(const char * const roomjid, const char * const nick, const char * const role,
-    const char * const error) {}
-void ui_handle_room_role_list_error(const char * const roomjid, const char * const role, const char * const error) {}
-void ui_handle_room_role_list(const char * const roomjid, const char * const role, GSList *nicks) {}
-void ui_handle_room_kick_error(const char * const roomjid, const char * const nick, const char * const error) {}
-void ui_show_form(ProfMucConfWin *confwin) {}
-void ui_show_form_field(ProfWin *window, DataForm *form, char *tag) {}
-void ui_show_form_help(ProfMucConfWin *confwin) {}
-void ui_show_form_field_help(ProfMucConfWin *confwin, char *tag) {}
-void ui_show_lines(ProfWin *window, const gchar** lines) {}
-void ui_redraw_all_room_rosters(void) {}
-void ui_show_all_room_rosters(void) {}
-void ui_hide_all_room_rosters(void) {}
-
-void ui_tidy_wins(void) {}
-void ui_prune_wins(void) {}
-gboolean ui_swap_wins(int source_win, int target_win)
-{
-    return FALSE;
-}
-
-void ui_auto_away(void) {}
-void ui_end_auto_away(void) {}
-void ui_titlebar_presence(contact_presence_t presence) {}
-void ui_handle_login_account_success(ProfAccount *account) {}
-void ui_update_presence(const resource_presence_t resource_presence,
-    const char * const message, const char * const show) {}
-void ui_about(void) {}
-void ui_statusbar_new(const int win) {}
-
-char*  ui_readline(void)
-{
-    return NULL;
-}
-
-void ui_inp_history_append(char *inp) {}
-
-void ui_input_clear(void) {}
-void ui_input_nonblocking(gboolean reset) {}
-
-void ui_invalid_command_usage(const char * const usage, void (*setting_func)(void)) {}
-
-void ui_create_xmlconsole_win(void) {}
-gboolean ui_xmlconsole_exists(void)
-{
-    return FALSE;
-}
-
-void ui_open_xmlconsole_win(void) {}
-
-gboolean ui_win_has_unsaved_form(int num)
-{
-    return FALSE;
-}
-
-void ui_handle_otr_error(const char * const barejid, const char * const message) {}
-
-void
-ui_write(char *line, int offset) {}
-
-// console window actions
-
-void cons_show(const char * const msg, ...)
-{
-    va_list args;
-    va_start(args, msg);
-    vsnprintf(output, sizeof(output), msg, args);
-    check_expected(output);
-    va_end(args);
-}
-
-void cons_about(void) {}
-void cons_help(void) {}
-void cons_navigation_help(void) {}
-void cons_prefs(void) {}
-void cons_show_ui_prefs(void) {}
-void cons_show_desktop_prefs(void) {}
-void cons_show_chat_prefs(void) {}
-void cons_show_log_prefs(void) {}
-void cons_show_presence_prefs(void) {}
-void cons_show_connection_prefs(void) {}
-void cons_show_otr_prefs(void) {}
-
-void cons_show_account(ProfAccount *account)
-{
-    check_expected(account);
-}
-
-void cons_debug(const char * const msg, ...) {}
-void cons_show_time(void) {}
-void cons_show_word(const char * const word) {}
-
-void cons_show_error(const char * const cmd, ...)
-{
-    va_list args;
-    va_start(args, cmd);
-    vsnprintf(output, sizeof(output), cmd, args);
-    check_expected(output);
-    va_end(args);
-}
-
-void cons_show_contacts(GSList * list) {}
-
-void cons_show_roster(GSList * list)
-{
-    check_expected(list);
-}
-
-void cons_show_roster_group(const char * const group, GSList * list) {}
-void cons_show_wins(void) {}
-void cons_show_status(const char * const barejid) {}
-void cons_show_info(PContact pcontact) {}
-void cons_show_caps(const char * const fulljid, resource_presence_t presence) {}
-void cons_show_themes(GSList *themes) {}
-
-void cons_show_aliases(GList *aliases)
-{
-    check_expected(aliases);
-}
-
-void cons_show_login_success(ProfAccount *account) {}
-void cons_show_software_version(const char * const jid,
-    const char * const presence, const char * const name,
-    const char * const version, const char * const os) {}
-
-void cons_show_account_list(gchar **accounts)
-{
-    check_expected(accounts);
-}
-
-void cons_show_room_list(GSList *room, const char * const conference_node) {}
-
-void cons_show_bookmarks(const GList *list)
-{
-    check_expected(list);
-}
-
-void cons_show_disco_items(GSList *items, const char * const jid) {}
-void cons_show_disco_info(const char *from, GSList *identities, GSList *features) {}
-void cons_show_room_invite(const char * const invitor, const char * const room,
-    const char * const reason) {}
-void cons_check_version(gboolean not_available_msg) {}
-void cons_show_typing(const char * const barejid) {}
-void cons_show_incoming_message(const char * const short_from, const int win_index) {}
-void cons_show_room_invites(GSList *invites) {}
-void cons_show_received_subs(void) {}
-void cons_show_sent_subs(void) {}
-void cons_alert(void) {}
-void cons_theme_setting(void) {}
-void cons_privileges_setting(void) {}
-void cons_beep_setting(void) {}
-void cons_flash_setting(void) {}
-void cons_splash_setting(void) {}
-void cons_vercheck_setting(void) {}
-void cons_resource_setting(void) {}
-void cons_occupants_setting(void) {}
-void cons_roster_setting(void) {}
-void cons_presence_setting(void) {}
-void cons_wrap_setting(void) {}
-void cons_time_setting(void) {}
-void cons_mouse_setting(void) {}
-void cons_statuses_setting(void) {}
-void cons_titlebar_setting(void) {}
-void cons_notify_setting(void) {}
-void cons_states_setting(void) {}
-void cons_outtype_setting(void) {}
-void cons_intype_setting(void) {}
-void cons_gone_setting(void) {}
-void cons_history_setting(void) {}
-void cons_carbons_setting(void) {}
-void cons_receipts_setting(void) {}
-void cons_log_setting(void) {}
-void cons_chlog_setting(void) {}
-void cons_grlog_setting(void) {}
-void cons_autoaway_setting(void) {}
-void cons_reconnect_setting(void) {}
-void cons_autoping_setting(void) {}
-void cons_priority_setting(void) {}
-void cons_autoconnect_setting(void) {}
-void cons_inpblock_setting(void) {}
-
-void cons_show_contact_online(PContact contact, Resource *resource, GDateTime *last_activity)
-{
-    check_expected(contact);
-    check_expected(resource);
-    check_expected(last_activity);
-}
-
-void cons_show_contact_offline(PContact contact, char *resource, char *status) {}
-void cons_theme_colours(void) {}
-
-// roster window
-void rosterwin_roster(void) {}
-
-// occupants window
-void occupantswin_occupants(const char * const room) {}
-
-// desktop notifier actions
-void notifier_uninit(void) {}
-
-void notify_typing(const char * const handle) {}
-void notify_message(ProfWin *window, const char * const name, const char * const text) {}
-void notify_room_message(const char * const handle, const char * const room,
-    int win, const char * const text) {}
-void notify_remind(void) {}
-void notify_invite(const char * const from, const char * const room,
-    const char * const reason) {}
-void notify_subscription(const char * const from) {}
diff --git a/stabbertests/ui/stub_ui.h b/stabbertests/ui/stub_ui.h
deleted file mode 100644
index 81357a86..00000000
--- a/stabbertests/ui/stub_ui.h
+++ /dev/null
@@ -1,6 +0,0 @@
-void expect_cons_show(char *expected);
-void expect_any_cons_show(void);
-void expect_cons_show_error(char *expected);
-void expect_any_cons_show_error(void);
-void expect_ui_current_print_line(char *message);
-void expect_ui_current_print_formatted_line(char show_char, int attrs, char *message);
\ No newline at end of file