about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/command/commands.c6
-rw-r--r--tests/unittests/test_cmd_account.c24
-rw-r--r--tests/unittests/test_cmd_account.h1
-rw-r--r--tests/unittests/unittests.c1
4 files changed, 31 insertions, 1 deletions
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),