1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-09-22 19:45:54 -04:00

Added initial stabber test

This commit is contained in:
James Booth 2015-05-17 22:05:43 +01:00
parent 97c5072f56
commit 2c5b44421e
13 changed files with 60 additions and 16 deletions

View File

@ -179,7 +179,7 @@ check_PROGRAMS = tests/testsuite stabbertests/testsuite
tests_testsuite_SOURCES = $(test_sources) tests_testsuite_SOURCES = $(test_sources)
tests_testsuite_LDADD = -lcmocka tests_testsuite_LDADD = -lcmocka
stabbertests_testsuite_SOURCES = $(stabbertest_sources) stabbertests_testsuite_SOURCES = $(stabbertest_sources)
stabbertests_testsuite_LDADD = -lcmocka -lstabber stabbertests_testsuite_LDADD = -lcmocka -lstabber -lpthread
man_MANS = $(man_sources) man_MANS = $(man_sources)

View File

@ -235,6 +235,9 @@ AM_CONDITIONAL([THEMES_INSTALL], "$THEMES_INSTALL")
PKG_CHECK_MODULES([cmocka], [cmocka], [], PKG_CHECK_MODULES([cmocka], [cmocka], [],
[AC_MSG_NOTICE([cmocka is not found, will not be able to run tests])]) [AC_MSG_NOTICE([cmocka is not found, will not be able to run tests])])
AC_CHECK_LIB([stabber], [stbbr_start], [],
[AC_MSG_ERROR([stabber not found, will not be able to run tests])])
### Check for ncursesw/ncurses.h first, Arch linux uses ncurses.h for ncursesw ### Check for ncursesw/ncurses.h first, Arch linux uses ncurses.h for ncursesw
AC_CHECK_HEADERS([ncursesw/ncurses.h], [], []) AC_CHECK_HEADERS([ncursesw/ncurses.h], [], [])
AC_CHECK_HEADERS([ncurses.h], [], []) AC_CHECK_HEADERS([ncurses.h], [], [])

View File

@ -82,7 +82,7 @@ prefs_load(void)
{ {
GError *err; GError *err;
log_info("Loading preferences"); // log_info("Loading preferences");
prefs_loc = _get_preferences_file(); prefs_loc = _get_preferences_file();
if (g_file_test(prefs_loc, G_FILE_TEST_EXISTS)) { if (g_file_test(prefs_loc, G_FILE_TEST_EXISTS)) {
@ -739,4 +739,4 @@ _get_default_string(preference_t pref)
default: default:
return NULL; return NULL;
} }
} }

View File

@ -207,12 +207,15 @@ theme_close(void)
{ {
if (theme) { if (theme) {
g_key_file_free(theme); g_key_file_free(theme);
theme = NULL;
} }
if (theme_loc) { if (theme_loc) {
g_string_free(theme_loc, TRUE); g_string_free(theme_loc, TRUE);
theme_loc = NULL;
} }
if (bold_items) { if (bold_items) {
g_hash_table_destroy(bold_items); g_hash_table_destroy(bold_items);
bold_items = NULL;
} }
} }
@ -613,4 +616,4 @@ theme_attrs(theme_item_t attrs)
return result; return result;
} }
} }

View File

@ -100,7 +100,7 @@ prof_run(const int disable_tls, char *log_level, char *account_name)
otr_poll(); otr_poll();
#endif #endif
notify_remind(); notify_remind();
jabber_process_events(); jabber_process_events(10);
ui_update(); ui_update();
} }
} }

View File

@ -194,7 +194,7 @@ jabber_disconnect(void)
xmpp_disconnect(jabber_conn.conn); xmpp_disconnect(jabber_conn.conn);
while (jabber_get_connection_status() == JABBER_DISCONNECTING) { while (jabber_get_connection_status() == JABBER_DISCONNECTING) {
jabber_process_events(); jabber_process_events(10);
} }
_connection_free_saved_account(); _connection_free_saved_account();
_connection_free_saved_details(); _connection_free_saved_details();
@ -222,10 +222,11 @@ jabber_shutdown(void)
_connection_free_session_data(); _connection_free_session_data();
xmpp_shutdown(); xmpp_shutdown();
free(jabber_conn.log); free(jabber_conn.log);
jabber_conn.log = NULL;
} }
void void
jabber_process_events(void) jabber_process_events(int millis)
{ {
int reconnect_sec; int reconnect_sec;
@ -234,7 +235,7 @@ jabber_process_events(void)
case JABBER_CONNECTED: case JABBER_CONNECTED:
case JABBER_CONNECTING: case JABBER_CONNECTING:
case JABBER_DISCONNECTING: case JABBER_DISCONNECTING:
xmpp_run_once(jabber_conn.ctx, 10); xmpp_run_once(jabber_conn.ctx, millis);
break; break;
case JABBER_DISCONNECTED: case JABBER_DISCONNECTED:
reconnect_sec = prefs_get_reconnect(); reconnect_sec = prefs_get_reconnect();
@ -577,4 +578,4 @@ _xmpp_get_file_logger()
file_log->userdata = &level; file_log->userdata = &level;
return file_log; return file_log;
} }

View File

@ -136,7 +136,7 @@ jabber_conn_status_t jabber_connect_with_details(const char * const jid,
jabber_conn_status_t jabber_connect_with_account(const ProfAccount * const account); jabber_conn_status_t jabber_connect_with_account(const ProfAccount * const account);
void jabber_disconnect(void); void jabber_disconnect(void);
void jabber_shutdown(void); void jabber_shutdown(void);
void jabber_process_events(void); void jabber_process_events(int millis);
const char * jabber_get_fulljid(void); const char * jabber_get_fulljid(void);
const char * jabber_get_domain(void); const char * jabber_get_domain(void);
jabber_conn_status_t jabber_get_connection_status(void); jabber_conn_status_t jabber_get_connection_status(void);

View File

@ -25,10 +25,19 @@
#include "otr/otr.h" #include "otr/otr.h"
#endif #endif
#define XDG_CONFIG_HOME "./stabbertests/files/xdg_config_home" #define XDG_CONFIG_HOME "./stabbertests/files/xdg_config_home"
#define XDG_DATA_HOME "./stabbertests/files/xdg_data_home" #define XDG_DATA_HOME "./stabbertests/files/xdg_data_home"
void
prof_process_xmpp(void)
{
int i = 0;
while (i < 20) {
jabber_process_events(10);
i++;
}
}
gboolean gboolean
_create_dir(char *name) _create_dir(char *name)
{ {

View File

@ -1,2 +1,3 @@
void init_prof_test(void **state); void init_prof_test(void **state);
void close_prof_test(void **state); void close_prof_test(void **state);
void prof_process_xmpp(void);

View File

@ -4,9 +4,36 @@
#include <setjmp.h> #include <setjmp.h>
#include <cmocka.h> #include <cmocka.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h>
#include <stabber.h>
#include "proftest.h"
#include "xmpp/xmpp.h"
#include "ui/stub_ui.h"
#include "command/command.h"
void void
connect_with_no_jid(void **state) connect_with_jid(void **state)
{ {
assert_true(1); char *connect = "/connect stabber@localhost port 5230";
char *password = "password";
if (stbbr_start(5230) != 0) {
assert_true(FALSE);
return;
}
stbbr_auth_passwd(password);
will_return(ui_ask_password, strdup(password));
expect_cons_show("Connecting as stabber@localhost");
cmd_process_input(strdup(connect));
prof_process_xmpp();
jabber_conn_status_t status = jabber_get_connection_status();
assert_true(status == JABBER_CONNECTED);
stbbr_stop();
} }

View File

@ -1 +1 @@
void connect_with_no_jid(void **state); void connect_with_jid(void **state);

View File

@ -15,7 +15,7 @@
int main(int argc, char* argv[]) { int main(int argc, char* argv[]) {
const UnitTest all_tests[] = { const UnitTest all_tests[] = {
unit_test_setup_teardown(connect_with_no_jid, unit_test_setup_teardown(connect_with_jid,
init_prof_test, init_prof_test,
close_prof_test), close_prof_test),
}; };

View File

@ -26,7 +26,7 @@ jabber_conn_status_t jabber_connect_with_account(const ProfAccount * const accou
void jabber_disconnect(void) {} void jabber_disconnect(void) {}
void jabber_shutdown(void) {} void jabber_shutdown(void) {}
void jabber_process_events(void) {} void jabber_process_events(int millis) {}
const char * jabber_get_fulljid(void) const char * jabber_get_fulljid(void)
{ {
return (char *)mock(); return (char *)mock();