1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-06-16 21:35:24 +00: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_LDADD = -lcmocka
stabbertests_testsuite_SOURCES = $(stabbertest_sources)
stabbertests_testsuite_LDADD = -lcmocka -lstabber
stabbertests_testsuite_LDADD = -lcmocka -lstabber -lpthread
man_MANS = $(man_sources)

View File

@ -235,6 +235,9 @@ AM_CONDITIONAL([THEMES_INSTALL], "$THEMES_INSTALL")
PKG_CHECK_MODULES([cmocka], [cmocka], [],
[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
AC_CHECK_HEADERS([ncursesw/ncurses.h], [], [])
AC_CHECK_HEADERS([ncurses.h], [], [])

View File

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

View File

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

View File

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

View File

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

View File

@ -25,10 +25,19 @@
#include "otr/otr.h"
#endif
#define XDG_CONFIG_HOME "./stabbertests/files/xdg_config_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
_create_dir(char *name)
{

View File

@ -1,2 +1,3 @@
void init_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 <cmocka.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
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[]) {
const UnitTest all_tests[] = {
unit_test_setup_teardown(connect_with_no_jid,
unit_test_setup_teardown(connect_with_jid,
init_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_shutdown(void) {}
void jabber_process_events(void) {}
void jabber_process_events(int millis) {}
const char * jabber_get_fulljid(void)
{
return (char *)mock();