From 9b41c4ee3246fb110c44f2d9a178416228cd39e9 Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 17 Dec 2013 22:33:49 +0000 Subject: [PATCH 1/9] Added tests for "/account set server" --- tests/config/mock_accounts.c | 6 +++++- tests/test_cmd_account.c | 41 ++++++++++++++++++++++++++++++++++++ tests/test_cmd_account.h | 2 ++ tests/testsuite.c | 2 ++ 4 files changed, 50 insertions(+), 1 deletion(-) diff --git a/tests/config/mock_accounts.c b/tests/config/mock_accounts.c index 8cd8b93e..345e5978 100644 --- a/tests/config/mock_accounts.c +++ b/tests/config/mock_accounts.c @@ -95,7 +95,11 @@ void accounts_set_jid(const char * const account_name, const char * const value) check_expected(value); } -void accounts_set_server(const char * const account_name, const char * const value) {} +void accounts_set_server(const char * const account_name, const char * const value) +{ + check_expected(account_name); + check_expected(value); +} void accounts_set_resource(const char * const account_name, const char * const value) { diff --git a/tests/test_cmd_account.c b/tests/test_cmd_account.c index 2e43bca6..d8d9e25a 100644 --- a/tests/test_cmd_account.c +++ b/tests/test_cmd_account.c @@ -520,3 +520,44 @@ void cmd_account_set_jid_sets_resource(void **state) free(help); } + +void cmd_account_set_server_sets_server(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + help->usage = "some usage"; + gchar *args[] = { "set", "a_account", "server", "a_server", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(accounts_set_server, account_name, "a_account"); + expect_string(accounts_set_server, value, "a_server"); + + expect_any_count(cons_show, output, 2); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_server_shows_message(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + help->usage = "some usage"; + gchar *args[] = { "set", "a_account", "server", "a_server", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_any(accounts_set_server, account_name); + expect_any(accounts_set_server, value); + + expect_string(cons_show, output, "Updated server for account a_account: a_server"); + expect_string(cons_show, output, ""); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} diff --git a/tests/test_cmd_account.h b/tests/test_cmd_account.h index 62783609..3affd717 100644 --- a/tests/test_cmd_account.h +++ b/tests/test_cmd_account.h @@ -28,3 +28,5 @@ void cmd_account_set_shows_message_when_account_doesnt_exist(void **state); void cmd_account_set_jid_shows_message_for_malformed_jid(void **state); void cmd_account_set_jid_sets_barejid(void **state); void cmd_account_set_jid_sets_resource(void **state); +void cmd_account_set_server_sets_server(void **state); +void cmd_account_set_server_shows_message(void **state); diff --git a/tests/testsuite.c b/tests/testsuite.c index 44c014df..487a32a6 100644 --- a/tests/testsuite.c +++ b/tests/testsuite.c @@ -211,6 +211,8 @@ int main(int argc, char* argv[]) { unit_test(cmd_account_set_jid_shows_message_for_malformed_jid), unit_test(cmd_account_set_jid_sets_barejid), unit_test(cmd_account_set_jid_sets_resource), + unit_test(cmd_account_set_server_sets_server), + unit_test(cmd_account_set_server_shows_message), }; return run_tests(tests); } From 8adca66fa36e79725a56552a1fe7fc9d3f28f95b Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 17 Dec 2013 22:37:35 +0000 Subject: [PATCH 2/9] Added tests for "/account set resource" --- tests/test_cmd_account.c | 41 ++++++++++++++++++++++++++++++++++++++++ tests/test_cmd_account.h | 2 ++ tests/testsuite.c | 2 ++ 3 files changed, 45 insertions(+) diff --git a/tests/test_cmd_account.c b/tests/test_cmd_account.c index d8d9e25a..0b267659 100644 --- a/tests/test_cmd_account.c +++ b/tests/test_cmd_account.c @@ -561,3 +561,44 @@ void cmd_account_set_server_shows_message(void **state) free(help); } + +void cmd_account_set_resource_sets_resource(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + help->usage = "some usage"; + gchar *args[] = { "set", "a_account", "resource", "a_resource", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(accounts_set_resource, account_name, "a_account"); + expect_string(accounts_set_resource, value, "a_resource"); + + expect_any_count(cons_show, output, 2); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_resource_shows_message(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + help->usage = "some usage"; + gchar *args[] = { "set", "a_account", "resource", "a_resource", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_any(accounts_set_resource, account_name); + expect_any(accounts_set_resource, value); + + expect_string(cons_show, output, "Updated resource for account a_account: a_resource"); + expect_string(cons_show, output, ""); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} diff --git a/tests/test_cmd_account.h b/tests/test_cmd_account.h index 3affd717..412f5774 100644 --- a/tests/test_cmd_account.h +++ b/tests/test_cmd_account.h @@ -30,3 +30,5 @@ void cmd_account_set_jid_sets_barejid(void **state); void cmd_account_set_jid_sets_resource(void **state); void cmd_account_set_server_sets_server(void **state); void cmd_account_set_server_shows_message(void **state); +void cmd_account_set_resource_sets_resource(void **state); +void cmd_account_set_resource_shows_message(void **state); diff --git a/tests/testsuite.c b/tests/testsuite.c index 487a32a6..9fc62c71 100644 --- a/tests/testsuite.c +++ b/tests/testsuite.c @@ -213,6 +213,8 @@ int main(int argc, char* argv[]) { unit_test(cmd_account_set_jid_sets_resource), unit_test(cmd_account_set_server_sets_server), unit_test(cmd_account_set_server_shows_message), + unit_test(cmd_account_set_resource_sets_resource), + unit_test(cmd_account_set_resource_shows_message), }; return run_tests(tests); } From 3b2446c46a9bb370cc032d9f5d3caabda55a1ada Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 17 Dec 2013 22:40:55 +0000 Subject: [PATCH 3/9] Added tests for "/account set password" --- tests/config/mock_accounts.c | 7 +++++- tests/test_cmd_account.c | 41 ++++++++++++++++++++++++++++++++++++ tests/test_cmd_account.h | 2 ++ tests/testsuite.c | 2 ++ 4 files changed, 51 insertions(+), 1 deletion(-) diff --git a/tests/config/mock_accounts.c b/tests/config/mock_accounts.c index 345e5978..294d2662 100644 --- a/tests/config/mock_accounts.c +++ b/tests/config/mock_accounts.c @@ -107,7 +107,12 @@ void accounts_set_resource(const char * const account_name, const char * const v check_expected(value); } -void accounts_set_password(const char * const account_name, const char * const value) {} +void accounts_set_password(const char * const account_name, const char * const value) +{ + check_expected(account_name); + check_expected(value); +} + void accounts_set_muc_service(const char * const account_name, const char * const value) {} void accounts_set_muc_nick(const char * const account_name, const char * const value) {} void accounts_set_last_presence(const char * const account_name, const char * const value) {} diff --git a/tests/test_cmd_account.c b/tests/test_cmd_account.c index 0b267659..5deece35 100644 --- a/tests/test_cmd_account.c +++ b/tests/test_cmd_account.c @@ -602,3 +602,44 @@ void cmd_account_set_resource_shows_message(void **state) free(help); } + +void cmd_account_set_password_sets_password(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + help->usage = "some usage"; + gchar *args[] = { "set", "a_account", "password", "a_password", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(accounts_set_password, account_name, "a_account"); + expect_string(accounts_set_password, value, "a_password"); + + expect_any_count(cons_show, output, 2); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_password_shows_message(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + help->usage = "some usage"; + gchar *args[] = { "set", "a_account", "password", "a_password", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_any(accounts_set_password, account_name); + expect_any(accounts_set_password, value); + + expect_string(cons_show, output, "Updated password for account a_account"); + expect_string(cons_show, output, ""); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} diff --git a/tests/test_cmd_account.h b/tests/test_cmd_account.h index 412f5774..0355a73c 100644 --- a/tests/test_cmd_account.h +++ b/tests/test_cmd_account.h @@ -32,3 +32,5 @@ void cmd_account_set_server_sets_server(void **state); void cmd_account_set_server_shows_message(void **state); void cmd_account_set_resource_sets_resource(void **state); void cmd_account_set_resource_shows_message(void **state); +void cmd_account_set_password_sets_password(void **state); +void cmd_account_set_password_shows_message(void **state); diff --git a/tests/testsuite.c b/tests/testsuite.c index 9fc62c71..6bff4361 100644 --- a/tests/testsuite.c +++ b/tests/testsuite.c @@ -215,6 +215,8 @@ int main(int argc, char* argv[]) { unit_test(cmd_account_set_server_shows_message), unit_test(cmd_account_set_resource_sets_resource), unit_test(cmd_account_set_resource_shows_message), + unit_test(cmd_account_set_password_sets_password), + unit_test(cmd_account_set_password_shows_message), }; return run_tests(tests); } From de06c40d463b01366df453fb90514b362b4cc158 Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 17 Dec 2013 22:46:54 +0000 Subject: [PATCH 4/9] Added tests for "/account set muc" and "/account set nick" --- tests/config/mock_accounts.c | 14 +++++- tests/test_cmd_account.c | 82 ++++++++++++++++++++++++++++++++++++ tests/test_cmd_account.h | 4 ++ tests/testsuite.c | 4 ++ 4 files changed, 102 insertions(+), 2 deletions(-) diff --git a/tests/config/mock_accounts.c b/tests/config/mock_accounts.c index 294d2662..d5992822 100644 --- a/tests/config/mock_accounts.c +++ b/tests/config/mock_accounts.c @@ -113,8 +113,18 @@ void accounts_set_password(const char * const account_name, const char * const v check_expected(value); } -void accounts_set_muc_service(const char * const account_name, const char * const value) {} -void accounts_set_muc_nick(const char * const account_name, const char * const value) {} +void accounts_set_muc_service(const char * const account_name, const char * const value) +{ + check_expected(account_name); + check_expected(value); +} + +void accounts_set_muc_nick(const char * const account_name, const char * const value) +{ + check_expected(account_name); + check_expected(value); +} + void accounts_set_last_presence(const char * const account_name, const char * const value) {} void accounts_set_login_presence(const char * const account_name, const char * const value) {} diff --git a/tests/test_cmd_account.c b/tests/test_cmd_account.c index 5deece35..3d3a6bf5 100644 --- a/tests/test_cmd_account.c +++ b/tests/test_cmd_account.c @@ -643,3 +643,85 @@ void cmd_account_set_password_shows_message(void **state) free(help); } + +void cmd_account_set_muc_sets_muc(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + help->usage = "some usage"; + gchar *args[] = { "set", "a_account", "muc", "a_muc", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(accounts_set_muc_service, account_name, "a_account"); + expect_string(accounts_set_muc_service, value, "a_muc"); + + expect_any_count(cons_show, output, 2); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_muc_shows_message(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + help->usage = "some usage"; + gchar *args[] = { "set", "a_account", "muc", "a_muc", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_any(accounts_set_muc_service, account_name); + expect_any(accounts_set_muc_service, value); + + expect_string(cons_show, output, "Updated muc service for account a_account: a_muc"); + expect_string(cons_show, output, ""); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_nick_sets_nick(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + help->usage = "some usage"; + gchar *args[] = { "set", "a_account", "nick", "a_nick", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(accounts_set_muc_nick, account_name, "a_account"); + expect_string(accounts_set_muc_nick, value, "a_nick"); + + expect_any_count(cons_show, output, 2); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_nick_shows_message(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + help->usage = "some usage"; + gchar *args[] = { "set", "a_account", "nick", "a_nick", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_any(accounts_set_muc_nick, account_name); + expect_any(accounts_set_muc_nick, value); + + expect_string(cons_show, output, "Updated muc nick for account a_account: a_nick"); + expect_string(cons_show, output, ""); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} diff --git a/tests/test_cmd_account.h b/tests/test_cmd_account.h index 0355a73c..ccb2a16c 100644 --- a/tests/test_cmd_account.h +++ b/tests/test_cmd_account.h @@ -34,3 +34,7 @@ void cmd_account_set_resource_sets_resource(void **state); void cmd_account_set_resource_shows_message(void **state); void cmd_account_set_password_sets_password(void **state); void cmd_account_set_password_shows_message(void **state); +void cmd_account_set_muc_sets_muc(void **state); +void cmd_account_set_muc_shows_message(void **state); +void cmd_account_set_nick_sets_nick(void **state); +void cmd_account_set_nick_shows_message(void **state); diff --git a/tests/testsuite.c b/tests/testsuite.c index 6bff4361..d23f13d5 100644 --- a/tests/testsuite.c +++ b/tests/testsuite.c @@ -217,6 +217,10 @@ int main(int argc, char* argv[]) { unit_test(cmd_account_set_resource_shows_message), unit_test(cmd_account_set_password_sets_password), unit_test(cmd_account_set_password_shows_message), + unit_test(cmd_account_set_muc_sets_muc), + unit_test(cmd_account_set_muc_shows_message), + unit_test(cmd_account_set_nick_sets_nick), + unit_test(cmd_account_set_nick_shows_message), }; return run_tests(tests); } From 99f4eeb60dfbf330312d472da0ec2606b0a79aff Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 17 Dec 2013 22:49:02 +0000 Subject: [PATCH 5/9] Removed help->usage when not used in tests --- tests/test_cmd_account.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/tests/test_cmd_account.c b/tests/test_cmd_account.c index 3d3a6bf5..eae3fb0c 100644 --- a/tests/test_cmd_account.c +++ b/tests/test_cmd_account.c @@ -420,7 +420,6 @@ void cmd_account_set_shows_usage_when_two_args(void **state) void cmd_account_set_checks_account_exists(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "a_property", "a_value", NULL }; expect_string(accounts_account_exists, account_name, "a_account"); @@ -437,7 +436,6 @@ void cmd_account_set_checks_account_exists(void **state) void cmd_account_set_shows_message_when_account_doesnt_exist(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "a_property", "a_value", NULL }; expect_any(accounts_account_exists, account_name); @@ -455,7 +453,6 @@ void cmd_account_set_shows_message_when_account_doesnt_exist(void **state) void cmd_account_set_jid_shows_message_for_malformed_jid(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "jid", "@malformed", NULL }; expect_any(accounts_account_exists, account_name); @@ -472,7 +469,6 @@ void cmd_account_set_jid_shows_message_for_malformed_jid(void **state) void cmd_account_set_jid_sets_barejid(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "jid", "a_local@a_domain/a_resource", NULL }; expect_any(accounts_account_exists, account_name); @@ -498,7 +494,6 @@ void cmd_account_set_jid_sets_barejid(void **state) void cmd_account_set_jid_sets_resource(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "jid", "a_local@a_domain/a_resource", NULL }; expect_any(accounts_account_exists, account_name); @@ -524,7 +519,6 @@ void cmd_account_set_jid_sets_resource(void **state) void cmd_account_set_server_sets_server(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "server", "a_server", NULL }; expect_any(accounts_account_exists, account_name); @@ -544,7 +538,6 @@ void cmd_account_set_server_sets_server(void **state) void cmd_account_set_server_shows_message(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "server", "a_server", NULL }; expect_any(accounts_account_exists, account_name); @@ -565,7 +558,6 @@ void cmd_account_set_server_shows_message(void **state) void cmd_account_set_resource_sets_resource(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "resource", "a_resource", NULL }; expect_any(accounts_account_exists, account_name); @@ -585,7 +577,6 @@ void cmd_account_set_resource_sets_resource(void **state) void cmd_account_set_resource_shows_message(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "resource", "a_resource", NULL }; expect_any(accounts_account_exists, account_name); @@ -606,7 +597,6 @@ void cmd_account_set_resource_shows_message(void **state) void cmd_account_set_password_sets_password(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "password", "a_password", NULL }; expect_any(accounts_account_exists, account_name); @@ -626,7 +616,6 @@ void cmd_account_set_password_sets_password(void **state) void cmd_account_set_password_shows_message(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "password", "a_password", NULL }; expect_any(accounts_account_exists, account_name); @@ -647,7 +636,6 @@ void cmd_account_set_password_shows_message(void **state) void cmd_account_set_muc_sets_muc(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "muc", "a_muc", NULL }; expect_any(accounts_account_exists, account_name); @@ -667,7 +655,6 @@ void cmd_account_set_muc_sets_muc(void **state) void cmd_account_set_muc_shows_message(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "muc", "a_muc", NULL }; expect_any(accounts_account_exists, account_name); @@ -688,7 +675,6 @@ void cmd_account_set_muc_shows_message(void **state) void cmd_account_set_nick_sets_nick(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "nick", "a_nick", NULL }; expect_any(accounts_account_exists, account_name); @@ -708,7 +694,6 @@ void cmd_account_set_nick_sets_nick(void **state) void cmd_account_set_nick_shows_message(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); - help->usage = "some usage"; gchar *args[] = { "set", "a_account", "nick", "a_nick", NULL }; expect_any(accounts_account_exists, account_name); From d5a2e645bf2d5ab6852e45a5a5268759ed2c2b2a Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 17 Dec 2013 22:58:27 +0000 Subject: [PATCH 6/9] Tests valid and invalid resource presence strings --- tests/test_common.c | 40 ++++++++++++++++++++++++++++++++++++++++ tests/test_common.h | 8 ++++++++ tests/testsuite.c | 8 ++++++++ 3 files changed, 56 insertions(+) diff --git a/tests/test_common.c b/tests/test_common.c index 124a1181..0d02bbd0 100644 --- a/tests/test_common.c +++ b/tests/test_common.c @@ -424,3 +424,43 @@ void next_available_24_first_big_gap(void **state) assert_int_equal(24, result); } + +void test_online_is_valid_resource_presence_string(void **state) +{ + assert_true(valid_resource_presence_string("online")); +} + +void test_chat_is_valid_resource_presence_string(void **state) +{ + assert_true(valid_resource_presence_string("chat")); +} + +void test_away_is_valid_resource_presence_string(void **state) +{ + assert_true(valid_resource_presence_string("away")); +} + +void test_xa_is_valid_resource_presence_string(void **state) +{ + assert_true(valid_resource_presence_string("xa")); +} + +void test_dnd_is_valid_resource_presence_string(void **state) +{ + assert_true(valid_resource_presence_string("dnd")); +} + +void test_available_is_not_valid_resource_presence_string(void **state) +{ + assert_false(valid_resource_presence_string("available")); +} + +void test_unavailable_is_not_valid_resource_presence_string(void **state) +{ + assert_false(valid_resource_presence_string("unavailable")); +} + +void test_blah_is_not_valid_resource_presence_string(void **state) +{ + assert_false(valid_resource_presence_string("blah")); +} diff --git a/tests/test_common.h b/tests/test_common.h index 903570e3..227eec24 100644 --- a/tests/test_common.h +++ b/tests/test_common.h @@ -30,3 +30,11 @@ void next_available_9_in_first_gap(void **state); void next_available_0_in_first_gap(void **state); void next_available_11_in_first_gap(void **state); void next_available_24_first_big_gap(void **state); +void test_online_is_valid_resource_presence_string(void **state); +void test_chat_is_valid_resource_presence_string(void **state); +void test_away_is_valid_resource_presence_string(void **state); +void test_xa_is_valid_resource_presence_string(void **state); +void test_dnd_is_valid_resource_presence_string(void **state); +void test_available_is_not_valid_resource_presence_string(void **state); +void test_unavailable_is_not_valid_resource_presence_string(void **state); +void test_blah_is_not_valid_resource_presence_string(void **state); diff --git a/tests/testsuite.c b/tests/testsuite.c index d23f13d5..9c05d031 100644 --- a/tests/testsuite.c +++ b/tests/testsuite.c @@ -47,6 +47,14 @@ int main(int argc, char* argv[]) { unit_test(next_available_0_in_first_gap), unit_test(next_available_11_in_first_gap), unit_test(next_available_24_first_big_gap), + unit_test(test_online_is_valid_resource_presence_string), + unit_test(test_chat_is_valid_resource_presence_string), + unit_test(test_away_is_valid_resource_presence_string), + unit_test(test_xa_is_valid_resource_presence_string), + unit_test(test_dnd_is_valid_resource_presence_string), + unit_test(test_available_is_not_valid_resource_presence_string), + unit_test(test_unavailable_is_not_valid_resource_presence_string), + unit_test(test_blah_is_not_valid_resource_presence_string), unit_test(clear_empty), unit_test(reset_after_create), From 76e7a8341bc4a38f1394eaa42dbe182e265e83d8 Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 17 Dec 2013 23:17:02 +0000 Subject: [PATCH 7/9] Added tests for "/account set status" --- tests/config/mock_accounts.c | 7 ++- tests/test_cmd_account.c | 95 ++++++++++++++++++++++++++++++++++++ tests/test_cmd_account.h | 5 ++ tests/testsuite.c | 5 ++ 4 files changed, 111 insertions(+), 1 deletion(-) diff --git a/tests/config/mock_accounts.c b/tests/config/mock_accounts.c index d5992822..de1d8b38 100644 --- a/tests/config/mock_accounts.c +++ b/tests/config/mock_accounts.c @@ -126,7 +126,12 @@ void accounts_set_muc_nick(const char * const account_name, const char * const v } void accounts_set_last_presence(const char * const account_name, const char * const value) {} -void accounts_set_login_presence(const char * const account_name, const char * const value) {} + +void accounts_set_login_presence(const char * const account_name, const char * const value) +{ + check_expected(account_name); + check_expected(value); +} resource_presence_t accounts_get_login_presence(const char * const account_name) { diff --git a/tests/test_cmd_account.c b/tests/test_cmd_account.c index eae3fb0c..222ab476 100644 --- a/tests/test_cmd_account.c +++ b/tests/test_cmd_account.c @@ -710,3 +710,98 @@ void cmd_account_set_nick_shows_message(void **state) free(help); } + +void cmd_account_set_status_shows_message_when_invalid_status(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "set", "a_account", "status", "bad_status", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(cons_show, output, "Invalid status: bad_status"); + expect_string(cons_show, output, ""); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_status_sets_status_when_valid(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "set", "a_account", "status", "away", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(accounts_set_login_presence, account_name, "a_account"); + expect_string(accounts_set_login_presence, value, "away"); + + expect_any_count(cons_show, output, 2); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_status_sets_status_when_last(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "set", "a_account", "status", "last", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(accounts_set_login_presence, account_name, "a_account"); + expect_string(accounts_set_login_presence, value, "last"); + + expect_any_count(cons_show, output, 2); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_status_shows_message_when_set_valid(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "set", "a_account", "status", "away", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_any(accounts_set_login_presence, account_name); + expect_any(accounts_set_login_presence, value); + + expect_string(cons_show, output, "Updated login status for account a_account: away"); + expect_string(cons_show, output, ""); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_status_shows_message_when_set_last(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "set", "a_account", "status", "last", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_any(accounts_set_login_presence, account_name); + expect_any(accounts_set_login_presence, value); + + expect_string(cons_show, output, "Updated login status for account a_account: last"); + expect_string(cons_show, output, ""); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} diff --git a/tests/test_cmd_account.h b/tests/test_cmd_account.h index ccb2a16c..535d3aec 100644 --- a/tests/test_cmd_account.h +++ b/tests/test_cmd_account.h @@ -38,3 +38,8 @@ void cmd_account_set_muc_sets_muc(void **state); void cmd_account_set_muc_shows_message(void **state); void cmd_account_set_nick_sets_nick(void **state); void cmd_account_set_nick_shows_message(void **state); +void cmd_account_set_status_shows_message_when_invalid_status(void **state); +void cmd_account_set_status_sets_status_when_valid(void **state); +void cmd_account_set_status_sets_status_when_last(void **state); +void cmd_account_set_status_shows_message_when_set_valid(void **state); +void cmd_account_set_status_shows_message_when_set_last(void **state); diff --git a/tests/testsuite.c b/tests/testsuite.c index 9c05d031..9392db7b 100644 --- a/tests/testsuite.c +++ b/tests/testsuite.c @@ -229,6 +229,11 @@ int main(int argc, char* argv[]) { unit_test(cmd_account_set_muc_shows_message), unit_test(cmd_account_set_nick_sets_nick), unit_test(cmd_account_set_nick_shows_message), + unit_test(cmd_account_set_status_shows_message_when_invalid_status), + unit_test(cmd_account_set_status_sets_status_when_valid), + unit_test(cmd_account_set_status_sets_status_when_last), + unit_test(cmd_account_set_status_shows_message_when_set_valid), + unit_test(cmd_account_set_status_shows_message_when_set_last), }; return run_tests(tests); } From ba66d6b730737bd392027899010589a79e2777df Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 17 Dec 2013 23:23:11 +0000 Subject: [PATCH 8/9] Added tests for "/account set " with invalid status --- tests/test_cmd_account.c | 34 ++++++++++++++++++++++++++++++++++ tests/test_cmd_account.h | 2 ++ tests/testsuite.c | 2 ++ 3 files changed, 38 insertions(+) diff --git a/tests/test_cmd_account.c b/tests/test_cmd_account.c index 222ab476..e8acf153 100644 --- a/tests/test_cmd_account.c +++ b/tests/test_cmd_account.c @@ -805,3 +805,37 @@ void cmd_account_set_status_shows_message_when_set_last(void **state) free(help); } + +void cmd_account_set_invalid_presence_string_priority_shows_message(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "set", "a_account", "blah", "10", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(cons_show, output, "Invalid property: blah"); + expect_string(cons_show, output, ""); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_last_priority_shows_message(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "set", "a_account", "last", "10", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(cons_show, output, "Invalid property: last"); + expect_string(cons_show, output, ""); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} diff --git a/tests/test_cmd_account.h b/tests/test_cmd_account.h index 535d3aec..2866054f 100644 --- a/tests/test_cmd_account.h +++ b/tests/test_cmd_account.h @@ -43,3 +43,5 @@ void cmd_account_set_status_sets_status_when_valid(void **state); void cmd_account_set_status_sets_status_when_last(void **state); void cmd_account_set_status_shows_message_when_set_valid(void **state); void cmd_account_set_status_shows_message_when_set_last(void **state); +void cmd_account_set_invalid_presence_string_priority_shows_message(void **state); +void cmd_account_set_last_priority_shows_message(void **state); diff --git a/tests/testsuite.c b/tests/testsuite.c index 9392db7b..af47189c 100644 --- a/tests/testsuite.c +++ b/tests/testsuite.c @@ -234,6 +234,8 @@ int main(int argc, char* argv[]) { unit_test(cmd_account_set_status_sets_status_when_last), unit_test(cmd_account_set_status_shows_message_when_set_valid), unit_test(cmd_account_set_status_shows_message_when_set_last), + unit_test(cmd_account_set_invalid_presence_string_priority_shows_message), + unit_test(cmd_account_set_last_priority_shows_message), }; return run_tests(tests); } From f47bd58a1cde062e9f7ee5ef7b504bc543bed727 Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 17 Dec 2013 23:57:06 +0000 Subject: [PATCH 9/9] Added tests for setting presence priorities --- src/command/commands.c | 11 ++- tests/config/mock_accounts.c | 35 ++++++++-- tests/test_cmd_account.c | 131 ++++++++++++++++++++++++++++++++--- tests/test_cmd_account.h | 5 ++ tests/testsuite.c | 5 ++ 5 files changed, 169 insertions(+), 18 deletions(-) diff --git a/src/command/commands.c b/src/command/commands.c index c48dc1a1..67458c79 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -259,10 +259,15 @@ cmd_account(gchar **args, struct cmd_help_t help) accounts_set_priority_dnd(account_name, intval); break; } + jabber_conn_status_t conn_status = jabber_get_connection_status(); - resource_presence_t last_presence = accounts_get_last_presence(jabber_get_account_name()); - if (conn_status == JABBER_CONNECTED && presence_type == last_presence) { - presence_update(last_presence, jabber_get_presence_message(), 0); + if (conn_status == JABBER_CONNECTED) { + char *connected_account = jabber_get_account_name(); + resource_presence_t last_presence = accounts_get_last_presence(connected_account); + + if (presence_type == last_presence) { + presence_update(last_presence, jabber_get_presence_message(), 0); + } } cons_show("Updated %s priority for account %s: %s", property, account_name, value); cons_show(""); diff --git a/tests/config/mock_accounts.c b/tests/config/mock_accounts.c index de1d8b38..929a3b51 100644 --- a/tests/config/mock_accounts.c +++ b/tests/config/mock_accounts.c @@ -143,11 +143,36 @@ resource_presence_t accounts_get_last_presence(const char * const account_name) return (resource_presence_t)mock(); } -void accounts_set_priority_online(const char * const account_name, const gint value) {} -void accounts_set_priority_chat(const char * const account_name, const gint value) {} -void accounts_set_priority_away(const char * const account_name, const gint value) {} -void accounts_set_priority_xa(const char * const account_name, const gint value) {} -void accounts_set_priority_dnd(const char * const account_name, const gint value) {} +void accounts_set_priority_online(const char * const account_name, const gint value) +{ + check_expected(account_name); + check_expected(value); +} + +void accounts_set_priority_chat(const char * const account_name, const gint value) +{ + check_expected(account_name); + check_expected(value); +} + +void accounts_set_priority_away(const char * const account_name, const gint value) +{ + check_expected(account_name); + check_expected(value); +} + +void accounts_set_priority_xa(const char * const account_name, const gint value) +{ + check_expected(account_name); + check_expected(value); +} + +void accounts_set_priority_dnd(const char * const account_name, const gint value) +{ + check_expected(account_name); + check_expected(value); +} + void accounts_set_priority_all(const char * const account_name, const gint value) {} gint accounts_get_priority_for_presence_type(const char * const account_name, diff --git a/tests/test_cmd_account.c b/tests/test_cmd_account.c index e8acf153..6c3f34ff 100644 --- a/tests/test_cmd_account.c +++ b/tests/test_cmd_account.c @@ -528,7 +528,7 @@ void cmd_account_set_server_sets_server(void **state) expect_string(accounts_set_server, value, "a_server"); expect_any_count(cons_show, output, 2); - + gboolean result = cmd_account(args, *help); assert_true(result); @@ -548,7 +548,7 @@ void cmd_account_set_server_shows_message(void **state) expect_string(cons_show, output, "Updated server for account a_account: a_server"); expect_string(cons_show, output, ""); - + gboolean result = cmd_account(args, *help); assert_true(result); @@ -567,7 +567,7 @@ void cmd_account_set_resource_sets_resource(void **state) expect_string(accounts_set_resource, value, "a_resource"); expect_any_count(cons_show, output, 2); - + gboolean result = cmd_account(args, *help); assert_true(result); @@ -587,7 +587,7 @@ void cmd_account_set_resource_shows_message(void **state) expect_string(cons_show, output, "Updated resource for account a_account: a_resource"); expect_string(cons_show, output, ""); - + gboolean result = cmd_account(args, *help); assert_true(result); @@ -606,7 +606,7 @@ void cmd_account_set_password_sets_password(void **state) expect_string(accounts_set_password, value, "a_password"); expect_any_count(cons_show, output, 2); - + gboolean result = cmd_account(args, *help); assert_true(result); @@ -626,7 +626,7 @@ void cmd_account_set_password_shows_message(void **state) expect_string(cons_show, output, "Updated password for account a_account"); expect_string(cons_show, output, ""); - + gboolean result = cmd_account(args, *help); assert_true(result); @@ -645,7 +645,7 @@ void cmd_account_set_muc_sets_muc(void **state) expect_string(accounts_set_muc_service, value, "a_muc"); expect_any_count(cons_show, output, 2); - + gboolean result = cmd_account(args, *help); assert_true(result); @@ -665,7 +665,7 @@ void cmd_account_set_muc_shows_message(void **state) expect_string(cons_show, output, "Updated muc service for account a_account: a_muc"); expect_string(cons_show, output, ""); - + gboolean result = cmd_account(args, *help); assert_true(result); @@ -684,7 +684,7 @@ void cmd_account_set_nick_sets_nick(void **state) expect_string(accounts_set_muc_nick, value, "a_nick"); expect_any_count(cons_show, output, 2); - + gboolean result = cmd_account(args, *help); assert_true(result); @@ -704,7 +704,7 @@ void cmd_account_set_nick_shows_message(void **state) expect_string(cons_show, output, "Updated muc nick for account a_account: a_nick"); expect_string(cons_show, output, ""); - + gboolean result = cmd_account(args, *help); assert_true(result); @@ -839,3 +839,114 @@ void cmd_account_set_last_priority_shows_message(void **state) free(help); } + +void cmd_account_set_online_priority_sets_preference(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "set", "a_account", "online", "10", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(accounts_set_priority_online, account_name, "a_account"); + expect_value(accounts_set_priority_online, value, 10); + + will_return(jabber_get_connection_status, JABBER_DISCONNECTED); + + expect_any_count(cons_show, output, 2); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_chat_priority_sets_preference(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "set", "a_account", "chat", "10", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(accounts_set_priority_chat, account_name, "a_account"); + expect_value(accounts_set_priority_chat, value, 10); + + will_return(jabber_get_connection_status, JABBER_DISCONNECTED); + + expect_any_count(cons_show, output, 2); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_away_priority_sets_preference(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "set", "a_account", "away", "10", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(accounts_set_priority_away, account_name, "a_account"); + expect_value(accounts_set_priority_away, value, 10); + + will_return(jabber_get_connection_status, JABBER_DISCONNECTED); + + expect_any_count(cons_show, output, 2); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_xa_priority_sets_preference(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "set", "a_account", "xa", "10", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(accounts_set_priority_xa, account_name, "a_account"); + expect_value(accounts_set_priority_xa, value, 10); + + will_return(jabber_get_connection_status, JABBER_DISCONNECTED); + + expect_any_count(cons_show, output, 2); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +void cmd_account_set_dnd_priority_sets_preference(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "set", "a_account", "dnd", "10", NULL }; + + expect_any(accounts_account_exists, account_name); + will_return(accounts_account_exists, TRUE); + + expect_string(accounts_set_priority_dnd, account_name, "a_account"); + expect_value(accounts_set_priority_dnd, value, 10); + + will_return(jabber_get_connection_status, JABBER_DISCONNECTED); + + expect_any_count(cons_show, output, 2); + + gboolean result = cmd_account(args, *help); + assert_true(result); + + free(help); +} + +// test message shown when set +// test invalid priority low +// test invalid priority high +// test presence updated when connected as account and current presence equals setting + diff --git a/tests/test_cmd_account.h b/tests/test_cmd_account.h index 2866054f..7333ad05 100644 --- a/tests/test_cmd_account.h +++ b/tests/test_cmd_account.h @@ -45,3 +45,8 @@ void cmd_account_set_status_shows_message_when_set_valid(void **state); void cmd_account_set_status_shows_message_when_set_last(void **state); void cmd_account_set_invalid_presence_string_priority_shows_message(void **state); void cmd_account_set_last_priority_shows_message(void **state); +void cmd_account_set_online_priority_sets_preference(void **state); +void cmd_account_set_chat_priority_sets_preference(void **state); +void cmd_account_set_away_priority_sets_preference(void **state); +void cmd_account_set_xa_priority_sets_preference(void **state); +void cmd_account_set_dnd_priority_sets_preference(void **state); diff --git a/tests/testsuite.c b/tests/testsuite.c index af47189c..bb3fdbbc 100644 --- a/tests/testsuite.c +++ b/tests/testsuite.c @@ -236,6 +236,11 @@ int main(int argc, char* argv[]) { unit_test(cmd_account_set_status_shows_message_when_set_last), unit_test(cmd_account_set_invalid_presence_string_priority_shows_message), unit_test(cmd_account_set_last_priority_shows_message), + unit_test(cmd_account_set_online_priority_sets_preference), + unit_test(cmd_account_set_chat_priority_sets_preference), + unit_test(cmd_account_set_away_priority_sets_preference), + unit_test(cmd_account_set_xa_priority_sets_preference), + unit_test(cmd_account_set_dnd_priority_sets_preference), }; return run_tests(tests); }