about summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2014-03-08 21:10:23 +0000
committerJames Booth <boothj5@gmail.com>2014-03-08 21:10:23 +0000
commitdd1ee18c72268839de8af64de5eb07c5a2499ff2 (patch)
tree6fab72178d19c201d2b73b5d503291cc2e423988 /tests
parente9b5d3294b3ccb8e5fb97e1a6e1d129631a72caa (diff)
downloadprofani-tty-dd1ee18c72268839de8af64de5eb07c5a2499ff2.tar.gz
Added test for /join with nick option
Diffstat (limited to 'tests')
-rw-r--r--tests/test_cmd_join.c443
-rw-r--r--tests/test_cmd_join.h1
-rw-r--r--tests/testsuite.c1
-rw-r--r--tests/ui/mock_ui.c13
-rw-r--r--tests/ui/mock_ui.h2
-rw-r--r--tests/xmpp/mock_xmpp.c26
-rw-r--r--tests/xmpp/mock_xmpp.h3
7 files changed, 65 insertions, 424 deletions
diff --git a/tests/test_cmd_join.c b/tests/test_cmd_join.c
index 225aaf5b..f7810401 100644
--- a/tests/test_cmd_join.c
+++ b/tests/test_cmd_join.c
@@ -12,7 +12,11 @@
 #include "ui/ui.h"
 #include "ui/mock_ui.h"
 
+#include "config/accounts.h"
+#include "config/mock_accounts.h"
+
 #include "command/commands.h"
+#include "muc.h"
 
 static void test_with_connection_status(jabber_conn_status_t status)
 {
@@ -84,438 +88,29 @@ void cmd_join_shows_error_message_when_invalid_room_jid(void **state)
     free(help);
 }
 
-/*
-void cmd_connect_shows_usage_when_no_server_value(void **state)
-{
-    stub_ui_ask_password();
-    mock_cons_show();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    help->usage = "some usage";
-    gchar *args[] = { "user@server.org", "server", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    expect_cons_show("Usage: some usage");
-    expect_cons_show("");
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_shows_usage_when_server_no_port_value(void **state)
-{
-    stub_ui_ask_password();
-    mock_cons_show();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    help->usage = "some usage";
-    gchar *args[] = { "user@server.org", "server", "aserver", "port", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    expect_cons_show("Usage: some usage");
-    expect_cons_show("");
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_shows_usage_when_no_port_value(void **state)
-{
-    stub_ui_ask_password();
-    mock_cons_show();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    help->usage = "some usage";
-    gchar *args[] = { "user@server.org", "port", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    expect_cons_show("Usage: some usage");
-    expect_cons_show("");
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_shows_usage_when_port_no_server_value(void **state)
-{
-    stub_ui_ask_password();
-    mock_cons_show();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    help->usage = "some usage";
-    gchar *args[] = { "user@server.org", "port", "5678", "server", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    expect_cons_show("Usage: some usage");
-    expect_cons_show("");
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_shows_message_when_port_0(void **state)
-{
-    stub_ui_ask_password();
-    mock_cons_show();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    gchar *args[] = { "user@server.org", "port", "0", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    expect_cons_show("Value 0 out of range. Must be in 1..65535.");
-    expect_cons_show("");
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_shows_message_when_port_minus1(void **state)
-{
-    stub_ui_ask_password();
-    mock_cons_show();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    gchar *args[] = { "user@server.org", "port", "-1", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    expect_cons_show("Value -1 out of range. Must be in 1..65535.");
-    expect_cons_show("");
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_shows_message_when_port_65536(void **state)
-{
-    stub_ui_ask_password();
-    mock_cons_show();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    gchar *args[] = { "user@server.org", "port", "65536", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    expect_cons_show("Value 65536 out of range. Must be in 1..65535.");
-    expect_cons_show("");
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_shows_message_when_port_contains_chars(void **state)
-{
-    stub_ui_ask_password();
-    mock_cons_show();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    gchar *args[] = { "user@server.org", "port", "52f66", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    expect_cons_show("Could not convert \"52f66\" to a number.");
-    expect_cons_show("");
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_shows_usage_when_server_provided_twice(void **state)
-{
-    stub_ui_ask_password();
-    mock_cons_show();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    help->usage = "some usage";
-    gchar *args[] = { "user@server.org", "server", "server1", "server", "server2", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    expect_cons_show("Usage: some usage");
-    expect_cons_show("");
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_shows_usage_when_port_provided_twice(void **state)
+void cmd_join_uses_supplied_nick(void **state)
 {
-    stub_ui_ask_password();
-    mock_cons_show();
+    char *account_name = "an_account";
+    char *room = "room@conf.server.org";
+    char *nick = "bob";
     CommandHelp *help = malloc(sizeof(CommandHelp));
-    help->usage = "some usage";
-    gchar *args[] = { "user@server.org", "port", "1111", "port", "1111", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    expect_cons_show("Usage: some usage");
-    expect_cons_show("");
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_shows_usage_when_invalid_first_property(void **state)
-{
-    stub_ui_ask_password();
-    mock_cons_show();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    help->usage = "some usage";
-    gchar *args[] = { "user@server.org", "wrong", "server", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    expect_cons_show("Usage: some usage");
-    expect_cons_show("");
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_shows_usage_when_invalid_second_property(void **state)
-{
-    stub_ui_ask_password();
-    mock_cons_show();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    help->usage = "some usage";
-    gchar *args[] = { "user@server.org", "server", "aserver", "wrong", "1234", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    expect_cons_show("Usage: some usage");
-    expect_cons_show("");
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_when_no_account(void **state)
-{
-    mock_cons_show();
-    mock_accounts_get_account();
-    mock_ui_ask_password();
-    mock_jabber_connect_with_details();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    gchar *args[] = { "user@server.org", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    accounts_get_account_expect_and_return("user@server.org", NULL);
-
-    mock_ui_ask_password_returns("password");
-
-    expect_cons_show("Connecting as user@server.org");
-
-    jabber_connect_with_details_expect_and_return("user@server.org", "password", NULL, 0, JABBER_CONNECTING);
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_with_server_when_provided(void **state)
-{
-    mock_ui_ask_password();
-    stub_cons_show();
-    mock_accounts_get_account();
-    mock_jabber_connect_with_details();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    gchar *args[] = { "user@server.org", "server", "aserver", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    accounts_get_account_return(NULL);
-
-    mock_ui_ask_password_returns("password");
-
-    jabber_connect_with_details_expect_and_return("user@server.org", "password", "aserver", 0, JABBER_CONNECTING);
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_with_port_when_provided(void **state)
-{
-    mock_ui_ask_password();
-    stub_cons_show();
-    mock_accounts_get_account();
-    mock_jabber_connect_with_details();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    gchar *args[] = { "user@server.org", "port", "5432", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    accounts_get_account_return(NULL);
-
-    mock_ui_ask_password_returns("password");
-
-    jabber_connect_with_details_expect_and_return("user@server.org", "password", NULL, 5432, JABBER_CONNECTING);
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_with_server_and_port_when_provided(void **state)
-{
-    mock_ui_ask_password();
-    stub_cons_show();
-    mock_accounts_get_account();
-    mock_jabber_connect_with_details();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    gchar *args[] = { "user@server.org", "port", "5432", "server", "aserver", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    accounts_get_account_return(NULL);
-
-    mock_ui_ask_password_returns("password");
-
-    jabber_connect_with_details_expect_and_return("user@server.org", "password", "aserver", 5432, JABBER_CONNECTING);
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_fail_message(void **state)
-{
-    stub_cons_show();
-    mock_cons_show_error();
-    stub_ui_ask_password();
-    mock_accounts_get_account();
-    mock_jabber_connect_with_details();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    gchar *args[] = { "user@server.org", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    accounts_get_account_return(NULL);
-
-    jabber_connect_with_details_return(JABBER_DISCONNECTED);
-
-    expect_cons_show_error("Connection attempt for user@server.org failed.");
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_lowercases_argument(void **state)
-{
-    stub_cons_show();
-    stub_ui_ask_password();
-    mock_accounts_get_account();
-    mock_jabber_connect_with_details();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    gchar *args[] = { "USER@server.ORG", NULL };
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    accounts_get_account_expect_and_return("user@server.org", NULL);
-
-    jabber_connect_with_details_return(JABBER_CONNECTING);
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_asks_password_when_not_in_account(void **state)
-{
-    stub_cons_show();
-    mock_ui_ask_password();
-    mock_accounts_get_account();
-    mock_jabber_connect_with_account();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    gchar *args[] = { "jabber_org", NULL };
-    ProfAccount *account = account_new("jabber_org", "me@jabber.org", NULL,
-        TRUE, NULL, 0, NULL, NULL, NULL, 0, 0, 0, 0, 0, NULL, NULL);
-
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    accounts_get_account_return(account);
-
-    mock_ui_ask_password_returns("password");
-
-    jabber_connect_with_account_return(JABBER_CONNECTING);
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
-
-void cmd_connect_shows_message_when_connecting_with_account(void **state)
-{
-    mock_cons_show();
-    mock_accounts_get_account();
-    mock_jabber_connect_with_account();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    gchar *args[] = { "jabber_org", NULL };
-    ProfAccount *account = account_new("jabber_org", "user@jabber.org", "password",
+    gchar *args[] = { room, "nick", nick, NULL };
+    ProfAccount *account = account_new(account_name, "user@server.org", NULL,
         TRUE, NULL, 0, "laptop", NULL, NULL, 0, 0, 0, 0, 0, NULL, NULL);
 
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    accounts_get_account_return(account);
-
-    expect_cons_show("Connecting with account jabber_org as user@jabber.org/laptop");
-
-    jabber_connect_with_account_return(JABBER_CONNECTING);
-
-    gboolean result = cmd_connect(args, *help);
-    assert_true(result);
-
-    free(help);
-}
+    muc_init();
 
-void cmd_connect_connects_with_account(void **state)
-{
-    stub_cons_show();
+    mock_connection_status(JABBER_CONNECTED);
+    mock_connection_account_name(account_name);
     mock_accounts_get_account();
-    mock_jabber_connect_with_account();
-    CommandHelp *help = malloc(sizeof(CommandHelp));
-    gchar *args[] = { "jabber_org", NULL };
-    ProfAccount *account = account_new("jabber_org", "me@jabber.org", "password",
-        TRUE, NULL, 0, NULL, NULL, NULL, 0, 0, 0, 0, 0, NULL, NULL);
+    accounts_get_account_expect_and_return(account_name, account);
 
-    mock_connection_status(JABBER_DISCONNECTED);
-
-    accounts_get_account_return(account);
-
-    jabber_connect_with_account_expect_and_return(account, JABBER_CONNECTING);
-
-    gboolean result = cmd_connect(args, *help);
+    mock_presence_join_room();
+    presence_join_room_expect(room, nick, NULL);
+    ui_room_join_expect(room);
+    
+    gboolean result = cmd_join(args, *help);
     assert_true(result);
 
     free(help);
 }
-*/
diff --git a/tests/test_cmd_join.h b/tests/test_cmd_join.h
index f6abdd8c..fa2084fb 100644
--- a/tests/test_cmd_join.h
+++ b/tests/test_cmd_join.h
@@ -4,3 +4,4 @@ void cmd_join_shows_message_when_disconnected(void **state);
 void cmd_join_shows_message_when_undefined(void **state);
 void cmd_join_shows_usage_when_no_args(void **state);
 void cmd_join_shows_error_message_when_invalid_room_jid(void **state);
+void cmd_join_uses_supplied_nick(void **state);
diff --git a/tests/testsuite.c b/tests/testsuite.c
index 0ba32305..841181bc 100644
--- a/tests/testsuite.c
+++ b/tests/testsuite.c
@@ -493,6 +493,7 @@ int main(int argc, char* argv[]) {
         unit_test(cmd_join_shows_message_when_undefined),
         unit_test(cmd_join_shows_usage_when_no_args),
         unit_test(cmd_join_shows_error_message_when_invalid_room_jid),
+        unit_test(cmd_join_uses_supplied_nick),
     };
 
     return run_tests(all_tests);
diff --git a/tests/ui/mock_ui.c b/tests/ui/mock_ui.c
index a79f0521..b325870a 100644
--- a/tests/ui/mock_ui.c
+++ b/tests/ui/mock_ui.c
@@ -187,6 +187,12 @@ gboolean _mock_ui_current_win_is_otr(void)
     return (gboolean)mock();
 }
 
+static
+void _mock_ui_room_join(char *room)
+{
+    check_expected(room);
+}
+
 // bind mocks and stubs
 
 void
@@ -429,3 +435,10 @@ ui_current_win_is_otr_returns(gboolean result)
     ui_current_win_is_otr = _mock_ui_current_win_is_otr;
     will_return(_mock_ui_current_win_is_otr, result);
 }
+
+void
+ui_room_join_expect(char *room)
+{
+    ui_room_join = _mock_ui_room_join;
+    expect_string(_mock_ui_room_join, room, room);
+}
diff --git a/tests/ui/mock_ui.h b/tests/ui/mock_ui.h
index a814f06e..05b271c1 100644
--- a/tests/ui/mock_ui.h
+++ b/tests/ui/mock_ui.h
@@ -59,4 +59,6 @@ void ui_current_print_line_expect(char *message);
 
 void ui_current_win_is_otr_returns(gboolean result);
 
+void ui_room_join_expect(char *room);
+
 #endif
diff --git a/tests/xmpp/mock_xmpp.c b/tests/xmpp/mock_xmpp.c
index c9843ed5..3b824c19 100644
--- a/tests/xmpp/mock_xmpp.c
+++ b/tests/xmpp/mock_xmpp.c
@@ -88,6 +88,14 @@ _mock_message_send(const char * const msg, const char * const recipient)
     check_expected(recipient);
 }
 
+static void
+_mock_presence_join_room(char *room, char*nick, char *passwd)
+{
+    check_expected(room);
+    check_expected(nick);
+    check_expected(passwd);
+}
+
 void
 mock_jabber_connect_with_details(void)
 {
@@ -126,6 +134,12 @@ mock_bookmark_remove(void)
 }
 
 void
+mock_presence_join_room(void)
+{
+    presence_join_room = _mock_presence_join_room;
+}
+
+void
 bookmark_get_list_returns(GList *bookmarks)
 {
     bookmark_get_list = _mock_bookmark_get_list;
@@ -234,3 +248,15 @@ message_send_expect(char *message, char *recipient)
     expect_string(_mock_message_send, msg, message);
     expect_string(_mock_message_send, recipient, recipient);
 }
+
+void
+presence_join_room_expect(char *room, char *nick, char *passwd)
+{
+    expect_string(_mock_presence_join_room, room, room);
+    expect_string(_mock_presence_join_room, nick, nick);
+    if (passwd == NULL) {
+        expect_any(_mock_presence_join_room, passwd);
+    } else {
+        expect_string(_mock_presence_join_room, passwd, passwd);
+    }
+}
diff --git a/tests/xmpp/mock_xmpp.h b/tests/xmpp/mock_xmpp.h
index 7400fe92..2b535761 100644
--- a/tests/xmpp/mock_xmpp.h
+++ b/tests/xmpp/mock_xmpp.h
@@ -33,4 +33,7 @@ void expect_and_return_bookmark_remove(char *expected_jid, gboolean expected_aut
 
 void message_send_expect(char *message, char *recipient);
 
+void mock_presence_join_room(void);
+void presence_join_room_expect(char *room, char *nick, char *passwd);
+
 #endif