Added cmd_statuses validation tests

This commit is contained in:
James Booth
2014-01-19 01:25:04 +00:00
parent 2f58b2488f
commit c7325de073
6 changed files with 122 additions and 9 deletions

View File

@@ -755,13 +755,24 @@ static struct cmd_t command_defs[] =
{ "/statuses",
cmd_statuses, parse_args, 1, 1, &cons_statuses_setting,
{ "/statuses on|off", "Set notifications for status messages.",
{ "/statuses on|off",
"----------------",
"Show status updates from contacts, such as online/offline/away etc.",
"When disabled, status updates are not displayed.",
"The default is 'on'.",
cmd_statuses, parse_args, 2, 2, &cons_statuses_setting,
{ "/statuses console|chat|muc setting", "Set preferences for presence change messages.",
{ "/statuses console|chat|muc setting",
"----------------------------------",
"Configure how presence changes are displayed in various windows.",
"Settings for the console:",
"all - Show all presence changes in the console",
"online - Show only when contacts log in/out.",
"none - Don't show any presence changes in the console.",
"Settings for chat windows:",
"all - Show all presence changes in the contact's chat window if one is open.",
"online - Show only when contacts log in/out.",
"none - Don't show any presence changes in the chat windows.",
"Settings for chat room windows:",
"on - Show presence changes in chat rooms.",
"off - Do not show presence changes in chat rooms (user entering/leaving are still displayed).",
"The defaults are:",
"console - all, chat - all, muc - on.",
NULL } } },
{ "/away",

View File

@@ -2253,8 +2253,27 @@ cmd_priority(gchar **args, struct cmd_help_t help)
gboolean
cmd_statuses(gchar **args, struct cmd_help_t help)
{
return _cmd_set_boolean_preference(args[0], help,
"Status notifications", PREF_STATUSES);
if (strcmp(args[0], "console") != 0 &&
strcmp(args[0], "chat") != 0 &&
strcmp(args[0], "muc") != 0) {
cons_show("Usage: %s", help.usage);
}
if (strcmp(args[0], "console") == 0 || strcmp(args[0], "chat") == 0) {
if (strcmp(args[1], "all") != 0 &&
strcmp(args[1], "online") != 0 &&
strcmp(args[1], "none") != 0) {
cons_show("Usage: %s", help.usage);
}
}
if (strcmp(args[0], "muc") == 0) {
if (strcmp(args[1], "on") != 0 && strcmp(args[1], "off") != 0) {
cons_show("Usage: %s", help.usage);
}
}
return TRUE;
}
gboolean