diff --git a/src/command/commands.c b/src/command/commands.c index 3f9009b4..5d324665 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -438,7 +438,11 @@ cmd_account(ProfWin *window, gchar **args, struct cmd_help_t help) } } else if (strcmp(property, "resource") == 0) { accounts_set_resource(account_name, value); - cons_show("Updated resource for account %s: %s", account_name, value); + if (jabber_get_connection_status() == JABBER_CONNECTED) { + cons_show("Updated resource for account %s: %s, you will need to reconnect to pick up the change.", account_name, value); + } else { + cons_show("Updated resource for account %s: %s", account_name, value); + } cons_show(""); } else if (strcmp(property, "password") == 0) { if(accounts_get_account(account_name)->eval_password) { diff --git a/tests/unittests/test_cmd_account.c b/tests/unittests/test_cmd_account.c index 8aa13609..51213eb5 100644 --- a/tests/unittests/test_cmd_account.c +++ b/tests/unittests/test_cmd_account.c @@ -458,6 +458,8 @@ void cmd_account_set_resource_sets_resource(void **state) CommandHelp *help = malloc(sizeof(CommandHelp)); gchar *args[] = { "set", "a_account", "resource", "a_resource", NULL }; + will_return(jabber_get_connection_status, JABBER_DISCONNECTED); + expect_any(accounts_account_exists, account_name); will_return(accounts_account_exists, TRUE); @@ -473,6 +475,28 @@ void cmd_account_set_resource_sets_resource(void **state) free(help); } +void cmd_account_set_resource_sets_resource_with_online_message(void **state) +{ + CommandHelp *help = malloc(sizeof(CommandHelp)); + gchar *args[] = { "set", "a_account", "resource", "a_resource", NULL }; + + will_return(jabber_get_connection_status, JABBER_CONNECTED); + + 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_cons_show("Updated resource for account a_account: a_resource, you will need to reconnect to pick up the change."); + expect_cons_show(""); + + gboolean result = cmd_account(NULL, args, *help); + assert_true(result); + + free(help); +} + void cmd_account_set_password_sets_password(void **state) { CommandHelp *help = malloc(sizeof(CommandHelp)); diff --git a/tests/unittests/test_cmd_account.h b/tests/unittests/test_cmd_account.h index 91bd1e70..e8806c4f 100644 --- a/tests/unittests/test_cmd_account.h +++ b/tests/unittests/test_cmd_account.h @@ -25,6 +25,7 @@ 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_resource_sets_resource(void **state); +void cmd_account_set_resource_sets_resource_with_online_message(void **state); void cmd_account_set_password_sets_password(void **state); void cmd_account_set_eval_password_sets_eval_password(void **state); void cmd_account_set_password_when_eval_password_set(void **state); diff --git a/tests/unittests/unittests.c b/tests/unittests/unittests.c index d20cf0b2..61c58e33 100644 --- a/tests/unittests/unittests.c +++ b/tests/unittests/unittests.c @@ -325,6 +325,7 @@ 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_resource_sets_resource), + unit_test(cmd_account_set_resource_sets_resource_with_online_message), unit_test(cmd_account_set_password_sets_password), unit_test(cmd_account_set_eval_password_sets_eval_password), unit_test(cmd_account_set_password_when_eval_password_set),