mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
Added cmd_statuses validation tests
This commit is contained in:
parent
2f58b2488f
commit
c7325de073
@ -73,6 +73,7 @@ test_sources = \
|
|||||||
tests/test_cmd_account.c \
|
tests/test_cmd_account.c \
|
||||||
tests/test_cmd_rooms.c \
|
tests/test_cmd_rooms.c \
|
||||||
tests/test_cmd_sub.c \
|
tests/test_cmd_sub.c \
|
||||||
|
tests/test_cmd_statuses.c \
|
||||||
tests/test_history.c \
|
tests/test_history.c \
|
||||||
tests/test_jid.c \
|
tests/test_jid.c \
|
||||||
tests/test_parser.c \
|
tests/test_parser.c \
|
||||||
|
@ -755,13 +755,24 @@ static struct cmd_t command_defs[] =
|
|||||||
|
|
||||||
|
|
||||||
{ "/statuses",
|
{ "/statuses",
|
||||||
cmd_statuses, parse_args, 1, 1, &cons_statuses_setting,
|
cmd_statuses, parse_args, 2, 2, &cons_statuses_setting,
|
||||||
{ "/statuses on|off", "Set notifications for status messages.",
|
{ "/statuses console|chat|muc setting", "Set preferences for presence change messages.",
|
||||||
{ "/statuses on|off",
|
{ "/statuses console|chat|muc setting",
|
||||||
"----------------",
|
"----------------------------------",
|
||||||
"Show status updates from contacts, such as online/offline/away etc.",
|
"Configure how presence changes are displayed in various windows.",
|
||||||
"When disabled, status updates are not displayed.",
|
"Settings for the console:",
|
||||||
"The default is 'on'.",
|
"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 } } },
|
NULL } } },
|
||||||
|
|
||||||
{ "/away",
|
{ "/away",
|
||||||
|
@ -2253,8 +2253,27 @@ cmd_priority(gchar **args, struct cmd_help_t help)
|
|||||||
gboolean
|
gboolean
|
||||||
cmd_statuses(gchar **args, struct cmd_help_t help)
|
cmd_statuses(gchar **args, struct cmd_help_t help)
|
||||||
{
|
{
|
||||||
return _cmd_set_boolean_preference(args[0], help,
|
if (strcmp(args[0], "console") != 0 &&
|
||||||
"Status notifications", PREF_STATUSES);
|
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
|
gboolean
|
||||||
|
72
tests/test_cmd_statuses.c
Normal file
72
tests/test_cmd_statuses.c
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
#include <stdarg.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <setjmp.h>
|
||||||
|
#include <cmocka.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <glib.h>
|
||||||
|
|
||||||
|
#include "ui/ui.h"
|
||||||
|
#include "ui/mock_ui.h"
|
||||||
|
|
||||||
|
#include "command/commands.h"
|
||||||
|
|
||||||
|
void cmd_statuses_shows_usage_when_bad_subcmd(void **state)
|
||||||
|
{
|
||||||
|
mock_cons_show();
|
||||||
|
CommandHelp *help = malloc(sizeof(CommandHelp));
|
||||||
|
help->usage = "some usage";
|
||||||
|
gchar *args[] = { "badcmd", NULL };
|
||||||
|
|
||||||
|
expect_cons_show("Usage: some usage");
|
||||||
|
|
||||||
|
gboolean result = cmd_statuses(args, *help);
|
||||||
|
assert_true(result);
|
||||||
|
|
||||||
|
free(help);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cmd_statuses_shows_usage_when_bad_console_setting(void **state)
|
||||||
|
{
|
||||||
|
mock_cons_show();
|
||||||
|
CommandHelp *help = malloc(sizeof(CommandHelp));
|
||||||
|
help->usage = "some usage";
|
||||||
|
gchar *args[] = { "console", "badsetting", NULL };
|
||||||
|
|
||||||
|
expect_cons_show("Usage: some usage");
|
||||||
|
|
||||||
|
gboolean result = cmd_statuses(args, *help);
|
||||||
|
assert_true(result);
|
||||||
|
|
||||||
|
free(help);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cmd_statuses_shows_usage_when_bad_chat_setting(void **state)
|
||||||
|
{
|
||||||
|
mock_cons_show();
|
||||||
|
CommandHelp *help = malloc(sizeof(CommandHelp));
|
||||||
|
help->usage = "some usage";
|
||||||
|
gchar *args[] = { "chat", "badsetting", NULL };
|
||||||
|
|
||||||
|
expect_cons_show("Usage: some usage");
|
||||||
|
|
||||||
|
gboolean result = cmd_statuses(args, *help);
|
||||||
|
assert_true(result);
|
||||||
|
|
||||||
|
free(help);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cmd_statuses_shows_usage_when_bad_muc_setting(void **state)
|
||||||
|
{
|
||||||
|
mock_cons_show();
|
||||||
|
CommandHelp *help = malloc(sizeof(CommandHelp));
|
||||||
|
help->usage = "some usage";
|
||||||
|
gchar *args[] = { "muc", "badsetting", NULL };
|
||||||
|
|
||||||
|
expect_cons_show("Usage: some usage");
|
||||||
|
|
||||||
|
gboolean result = cmd_statuses(args, *help);
|
||||||
|
assert_true(result);
|
||||||
|
|
||||||
|
free(help);
|
||||||
|
}
|
4
tests/test_cmd_statuses.h
Normal file
4
tests/test_cmd_statuses.h
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
void cmd_statuses_shows_usage_when_bad_subcmd(void **state);
|
||||||
|
void cmd_statuses_shows_usage_when_bad_console_setting(void **state);
|
||||||
|
void cmd_statuses_shows_usage_when_bad_chat_setting(void **state);
|
||||||
|
void cmd_statuses_shows_usage_when_bad_muc_setting(void **state);
|
@ -10,6 +10,7 @@
|
|||||||
#include "test_cmd_account.h"
|
#include "test_cmd_account.h"
|
||||||
#include "test_cmd_rooms.h"
|
#include "test_cmd_rooms.h"
|
||||||
#include "test_cmd_sub.h"
|
#include "test_cmd_sub.h"
|
||||||
|
#include "test_cmd_statuses.h"
|
||||||
#include "test_history.h"
|
#include "test_history.h"
|
||||||
#include "test_jid.h"
|
#include "test_jid.h"
|
||||||
#include "test_parser.h"
|
#include "test_parser.h"
|
||||||
@ -295,6 +296,11 @@ int main(int argc, char* argv[]) {
|
|||||||
unit_test(contact_available_when_highest_priority_online),
|
unit_test(contact_available_when_highest_priority_online),
|
||||||
unit_test(contact_available_when_highest_priority_chat),
|
unit_test(contact_available_when_highest_priority_chat),
|
||||||
|
|
||||||
|
unit_test(cmd_statuses_shows_usage_when_bad_subcmd),
|
||||||
|
unit_test(cmd_statuses_shows_usage_when_bad_console_setting),
|
||||||
|
unit_test(cmd_statuses_shows_usage_when_bad_chat_setting),
|
||||||
|
unit_test(cmd_statuses_shows_usage_when_bad_muc_setting),
|
||||||
|
|
||||||
};
|
};
|
||||||
return run_tests(tests);
|
return run_tests(tests);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user