diff options
author | James Booth <boothj5@gmail.com> | 2015-05-26 23:22:05 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2015-05-26 23:22:05 +0100 |
commit | e2fa67faff94bd4cb867837632c59dfa0d633c87 (patch) | |
tree | cffb0d6d4bff9e4afb0a4d00491d179113295531 | |
parent | c2fde7c2639f318f8d4839955e7b7e17456e0564 (diff) | |
download | profani-tty-e2fa67faff94bd4cb867837632c59dfa0d633c87.tar.gz |
Use libexpect in stabber test
-rw-r--r-- | Makefile.am | 40 | ||||
-rw-r--r-- | expecttest.c | 2 | ||||
-rw-r--r-- | stabbertests/checkers/checkers.c | 26 | ||||
-rw-r--r-- | stabbertests/checkers/checkers.h | 6 | ||||
-rw-r--r-- | stabbertests/proftest.c | 78 | ||||
-rw-r--r-- | stabbertests/proftest.h | 5 | ||||
-rw-r--r-- | stabbertests/stabbertestsuite.c | 48 | ||||
-rw-r--r-- | stabbertests/test_connect.c | 444 | ||||
-rw-r--r-- | stabbertests/test_connect.h | 16 | ||||
-rw-r--r-- | stabbertests/ui/stub_ui.c | 511 | ||||
-rw-r--r-- | stabbertests/ui/stub_ui.h | 6 |
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 |