diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_cmd_connect.c | 40 | ||||
-rw-r--r-- | tests/test_cmd_connect.h | 1 | ||||
-rw-r--r-- | tests/test_cmd_rooms.c | 2 | ||||
-rw-r--r-- | tests/testsuite.c | 1 | ||||
-rw-r--r-- | tests/ui/mock_ui.c | 13 | ||||
-rw-r--r-- | tests/xmpp/mock_xmpp.c | 3 |
6 files changed, 33 insertions, 27 deletions
diff --git a/tests/test_cmd_connect.c b/tests/test_cmd_connect.c index 2acc2c48..2a09815f 100644 --- a/tests/test_cmd_connect.c +++ b/tests/test_cmd_connect.c @@ -3,6 +3,7 @@ #include <setjmp.h> #include <cmocka.h> #include <stdlib.h> +#include <string.h> #include <glib.h> #include "xmpp/xmpp.h" @@ -14,7 +15,7 @@ static void test_with_connection_status(jabber_conn_status_t status) CommandHelp *help = malloc(sizeof(CommandHelp)); will_return(jabber_get_connection_status, status); - expect_string(cons_show, msg, "You are either connected already, or a login is in process."); + expect_string(cons_show, output, "You are either connected already, or a login is in process."); gboolean result = cmd_connect(NULL, *help); assert_true(result); @@ -41,39 +42,28 @@ void cmd_connect_shows_message_when_undefined(void **state) { test_with_connection_status(JABBER_UNDEFINED); } -/* -void cmd_rooms_uses_account_default_when_no_arg(void **state) + +void cmd_connect_when_no_account(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - ProfAccount *account = malloc(sizeof(ProfAccount)); - account->muc_service = "default_conf_server"; - gchar *args[] = { NULL }; + gchar *args[] = { "user@server.org", NULL }; - will_return(jabber_get_connection_status, JABBER_CONNECTED); - will_return(jabber_get_account_name, "account_name"); - will_return(accounts_get_account, account); - expect_string(iq_room_list_request, conferencejid, "default_conf_server"); + will_return(jabber_get_connection_status, JABBER_DISCONNECTED); - gboolean result = cmd_rooms(args, *help); - - assert_true(result); + expect_string(accounts_get_account, name, "user@server.org"); + will_return(accounts_get_account, NULL); - free(help); - free(account); -} + will_return(ui_ask_password, strdup("password")); -void cmd_rooms_arg_used_when_passed(void **state) -{ - CommandHelp *help = malloc(sizeof(CommandHelp)); - gchar *args[] = { "conf_server_arg" }; + expect_string(cons_show, output, "Connecting as user@server.org"); - will_return(jabber_get_connection_status, JABBER_CONNECTED); - expect_string(iq_room_list_request, conferencejid, "conf_server_arg"); - - gboolean result = cmd_rooms(args, *help); + expect_string(jabber_connect_with_details, jid, "user@server.org"); + expect_string(jabber_connect_with_details, passwd, "password"); + expect_any(jabber_connect_with_details, altdomain); + will_return(jabber_connect_with_details, JABBER_CONNECTING); + gboolean result = cmd_connect(args, *help); assert_true(result); free(help); } -*/ diff --git a/tests/test_cmd_connect.h b/tests/test_cmd_connect.h index af187d68..be8eba23 100644 --- a/tests/test_cmd_connect.h +++ b/tests/test_cmd_connect.h @@ -2,3 +2,4 @@ void cmd_connect_shows_message_when_disconnecting(void **state); void cmd_connect_shows_message_when_connecting(void **state); void cmd_connect_shows_message_when_connected(void **state); void cmd_connect_shows_message_when_undefined(void **state); +void cmd_connect_when_no_account(void **state); diff --git a/tests/test_cmd_rooms.c b/tests/test_cmd_rooms.c index 91581a99..b6782176 100644 --- a/tests/test_cmd_rooms.c +++ b/tests/test_cmd_rooms.c @@ -14,7 +14,7 @@ static void test_with_connection_status(jabber_conn_status_t status) CommandHelp *help = malloc(sizeof(CommandHelp)); will_return(jabber_get_connection_status, status); - expect_string(cons_show, msg, "You are not currently connected."); + expect_string(cons_show, output, "You are not currently connected."); gboolean result = cmd_rooms(NULL, *help); assert_true(result); diff --git a/tests/testsuite.c b/tests/testsuite.c index d13a3d46..8a29e0fd 100644 --- a/tests/testsuite.c +++ b/tests/testsuite.c @@ -18,6 +18,7 @@ int main(int argc, char* argv[]) { unit_test(cmd_connect_shows_message_when_connecting), unit_test(cmd_connect_shows_message_when_connected), unit_test(cmd_connect_shows_message_when_undefined), + unit_test(cmd_connect_when_no_account), unit_test(cmd_rooms_shows_message_when_disconnected), unit_test(cmd_rooms_shows_message_when_disconnecting), diff --git a/tests/ui/mock_ui.c b/tests/ui/mock_ui.c index ed7dd4b1..a361e90e 100644 --- a/tests/ui/mock_ui.c +++ b/tests/ui/mock_ui.c @@ -26,6 +26,8 @@ #include "ui/ui.h" +char output[256]; + // ui startup and control void ui_init(void) {} void ui_load_colours(void) {} @@ -173,6 +175,11 @@ gboolean ui_duck_exists(void) void ui_tidy_wins(void) {} void ui_prune_wins(void) {} +char * ui_ask_password(void) +{ + return (char *)mock(); +} + // create windows void create_title_bar(void) {} void create_status_bar(void) {} @@ -191,7 +198,11 @@ void title_bar_draw(void) {} // console window actions void cons_show(const char * const msg, ...) { - check_expected(msg); + va_list args; + va_start(args, msg); + vsnprintf(output, sizeof(output), msg, args); + check_expected(output); + va_end(args); } void cons_about(void) {} diff --git a/tests/xmpp/mock_xmpp.c b/tests/xmpp/mock_xmpp.c index 8ba03cab..26c9c72d 100644 --- a/tests/xmpp/mock_xmpp.c +++ b/tests/xmpp/mock_xmpp.c @@ -32,6 +32,9 @@ void jabber_init(const int disable_tls) {} jabber_conn_status_t jabber_connect_with_details(const char * const jid, const char * const passwd, const char * const altdomain) { + check_expected(jid); + check_expected(passwd); + check_expected(altdomain); return (jabber_conn_status_t)mock(); } |