1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-14 15:14:47 +02:00
Files

515 lines
16 KiB
C++

/*
* SPDX-FileCopyrightText: 2021-2026 Sébastien Helleu <flashcode@flashtux.org>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
* This file is part of WeeChat, the extensible chat client.
*
* WeeChat is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* WeeChat is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WeeChat. If not, see <http://www.gnu.org/licenses/>.
*/
/* Test trigger configuration functions */
#include "CppUTest/TestHarness.h"
#include "tests.h"
extern "C"
{
#include <stdio.h>
#include "src/core/core-hook.h"
#include "src/plugins/trigger/trigger.h"
}
#define WEE_CHECK_MODIFIER(__result, __modifier, __string) \
WEE_TEST_STR( \
__result, \
hook_modifier_exec (NULL, __modifier, NULL, __string));
#define WEE_CHECK_MODIFIER_INPUT(__result, __string) \
WEE_CHECK_MODIFIER(__result, "input_text_display", __string)
#define WEE_CHECK_MODIFIER_MSG_AUTH(__result, __string) \
WEE_CHECK_MODIFIER(__result, "irc_message_auth", __string)
TEST_GROUP(TriggerConfig)
{
};
/*
* Tests default trigger "beep".
*/
TEST(TriggerConfig, DefaultTriggerBeep)
{
/* TODO: write tests */
}
/*
* Tests default trigger "cmd_pass".
*/
TEST(TriggerConfig, DefaultTriggerCmdPass)
{
char *str;
/*
* /msg nickserv id <nick> <password>
* /msg nickserv id <password>
*/
WEE_CHECK_MODIFIER_INPUT("/msg nickserv id",
"/msg nickserv id");
WEE_CHECK_MODIFIER_INPUT("/msg nickserv id ************",
"/msg nickserv id alice secret");
WEE_CHECK_MODIFIER_INPUT("/msg nickserv id ******",
"/msg nickserv id secret");
/*
* /m nickserv id <nick> <password>
* /m nickserv id <password>
*/
WEE_CHECK_MODIFIER_INPUT("/m nickserv id",
"/m nickserv id");
WEE_CHECK_MODIFIER_INPUT("/m nickserv id ************",
"/m nickserv id alice secret");
WEE_CHECK_MODIFIER_INPUT("/m nickserv id ******",
"/m nickserv id secret");
/*
* /quote nickserv id <nick> <password>
* /quote nickserv id <password>
*/
WEE_CHECK_MODIFIER_INPUT("/quote nickserv id",
"/quote nickserv id");
WEE_CHECK_MODIFIER_INPUT("/quote nickserv id ************",
"/quote nickserv id alice secret");
WEE_CHECK_MODIFIER_INPUT("/quote nickserv id ******",
"/quote nickserv id secret");
/*
* /msg -server xxx nickserv id <nick> <password>
* /msg -server xxx nickserv id <password>
*/
WEE_CHECK_MODIFIER_INPUT("/msg -server libera nickserv id",
"/msg -server libera nickserv id");
WEE_CHECK_MODIFIER_INPUT("/msg -server libera nickserv id ************",
"/msg -server libera nickserv id alice secret");
WEE_CHECK_MODIFIER_INPUT("/msg -server libera nickserv id ******",
"/msg -server libera nickserv id secret");
/*
* /m -server xxx nickserv id <nick> <password>
* /m -server xxx nickserv id <password>
*/
WEE_CHECK_MODIFIER_INPUT("/m -server libera nickserv id",
"/m -server libera nickserv id");
WEE_CHECK_MODIFIER_INPUT("/m -server libera nickserv id ************",
"/m -server libera nickserv id alice secret");
WEE_CHECK_MODIFIER_INPUT("/m -server libera nickserv id ******",
"/m -server libera nickserv id secret");
/*
* /quote -server xxx nickserv id <nick> <password>
* /quote -server xxx nickserv id <password>
*/
WEE_CHECK_MODIFIER_INPUT("/quote -server libera nickserv id",
"/quote -server libera nickserv id");
WEE_CHECK_MODIFIER_INPUT("/quote -server libera nickserv id ************",
"/quote -server libera nickserv id alice secret");
WEE_CHECK_MODIFIER_INPUT("/quote -server libera nickserv id ******",
"/quote -server libera nickserv id secret");
/*
* /msg nickserv identify <nick> <password>
* /msg nickserv identify <password>
*/
WEE_CHECK_MODIFIER_INPUT("/msg nickserv identify",
"/msg nickserv identify");
WEE_CHECK_MODIFIER_INPUT("/msg nickserv identify ************",
"/msg nickserv identify alice secret");
WEE_CHECK_MODIFIER_INPUT("/msg nickserv identify ******",
"/msg nickserv identify secret");
/* /msg nickserv set password <password> */
WEE_CHECK_MODIFIER_INPUT("/msg nickserv set password",
"/msg nickserv set password");
WEE_CHECK_MODIFIER_INPUT("/msg nickserv set password ******",
"/msg nickserv set password secret");
/* /msg nickserv ghost <nick> <password> */
WEE_CHECK_MODIFIER_INPUT("/msg nickserv ghost alice",
"/msg nickserv ghost alice");
WEE_CHECK_MODIFIER_INPUT("/msg nickserv ghost alice ******",
"/msg nickserv ghost alice secret");
/* /msg nickserv release <nick> <password> */
WEE_CHECK_MODIFIER_INPUT("/msg nickserv release alice",
"/msg nickserv release alice");
WEE_CHECK_MODIFIER_INPUT("/msg nickserv release alice ******",
"/msg nickserv release alice secret");
/* /msg nickserv regain <nick> <password> */
WEE_CHECK_MODIFIER_INPUT("/msg nickserv regain alice",
"/msg nickserv regain alice");
WEE_CHECK_MODIFIER_INPUT("/msg nickserv regain alice ******",
"/msg nickserv regain alice secret");
/* /msg nickserv recover <nick> <password> */
WEE_CHECK_MODIFIER_INPUT("/msg nickserv recover alice",
"/msg nickserv recover alice");
WEE_CHECK_MODIFIER_INPUT("/msg nickserv recover alice ******",
"/msg nickserv recover alice secret");
/* /msg nickserv setpass <nick> <key> <password> */
WEE_CHECK_MODIFIER_INPUT("/msg nickserv setpass alice",
"/msg nickserv setpass alice");
WEE_CHECK_MODIFIER_INPUT("/msg nickserv setpass alice **********",
"/msg nickserv setpass alice key secret");
/* /oper <nick> <password> */
WEE_CHECK_MODIFIER_INPUT("/oper alice",
"/oper alice");
WEE_CHECK_MODIFIER_INPUT("/oper alice ******",
"/oper alice secret");
/* /quote pass <password> */
WEE_CHECK_MODIFIER_INPUT("/quote pass",
"/quote pass");
WEE_CHECK_MODIFIER_INPUT("/quote pass ******",
"/quote pass secret");
/* /secure passphrase <passphrase> */
WEE_CHECK_MODIFIER_INPUT("/secure passphrase",
"/secure passphrase");
WEE_CHECK_MODIFIER_INPUT("/secure passphrase **********************",
"/secure passphrase this is the passphrase");
/* /secure decrypt <passphrase> */
WEE_CHECK_MODIFIER_INPUT("/secure decrypt",
"/secure decrypt");
WEE_CHECK_MODIFIER_INPUT("/secure decrypt **********************",
"/secure decrypt this is the passphrase");
/* /secure set <name> <value> */
WEE_CHECK_MODIFIER_INPUT("/secure set name",
"/secure set name");
WEE_CHECK_MODIFIER_INPUT("/secure set name ******",
"/secure set name secret");
/* modifier "history_add" */
WEE_CHECK_MODIFIER("/msg nickserv identify ************",
"history_add",
"/msg nickserv identify alice secret");
/* modifier "irc_command_auth" */
WEE_CHECK_MODIFIER("/msg nickserv identify ************",
"irc_command_auth",
"/msg nickserv identify alice secret");
}
/*
* Tests default trigger "cmd_pass_register".
*/
TEST(TriggerConfig, DefaultTriggerCmdPassRegister)
{
char *str;
/* /msg nickserv register <password> <email> */
WEE_CHECK_MODIFIER_INPUT("/msg nickserv register",
"/msg nickserv register");
WEE_CHECK_MODIFIER_INPUT("/msg nickserv register ****** test@example.com",
"/msg nickserv register secret test@example.com");
/* /m nickserv register <password> <email> */
WEE_CHECK_MODIFIER_INPUT("/m nickserv register",
"/m nickserv register");
WEE_CHECK_MODIFIER_INPUT("/m nickserv register ****** test@example.com",
"/m nickserv register secret test@example.com");
/* /quote nickserv register <password> <email> */
WEE_CHECK_MODIFIER_INPUT("/quote nickserv register",
"/quote nickserv register");
WEE_CHECK_MODIFIER_INPUT("/quote nickserv register ****** test@example.com",
"/quote nickserv register secret test@example.com");
/* /msg -server ccc nickserv register <password> <email> */
WEE_CHECK_MODIFIER_INPUT("/quote -server libera nickserv register",
"/quote -server libera nickserv register");
WEE_CHECK_MODIFIER_INPUT("/quote -server libera nickserv register ****** test@example.com",
"/quote -server libera nickserv register secret test@example.com");
/* /m -server ccc nickserv register <password> <email> */
WEE_CHECK_MODIFIER_INPUT("/m -server libera nickserv register",
"/m -server libera nickserv register");
WEE_CHECK_MODIFIER_INPUT("/m -server libera nickserv register ****** test@example.com",
"/m -server libera nickserv register secret test@example.com");
/* /quote -server ccc nickserv register <password> <email> */
WEE_CHECK_MODIFIER_INPUT("/quote -server libera nickserv register",
"/quote -server libera nickserv register");
WEE_CHECK_MODIFIER_INPUT("/quote -server libera nickserv register ****** test@example.com",
"/quote -server libera nickserv register secret test@example.com");
/* modifier "history_add" */
WEE_CHECK_MODIFIER("/msg nickserv register ****** test@example.com",
"history_add",
"/msg nickserv register secret test@example.com");
/* modifier "irc_command_auth" */
WEE_CHECK_MODIFIER("/msg nickserv register ****** test@example.com",
"irc_command_auth",
"/msg nickserv register secret test@example.com");
}
/*
* Tests default trigger "msg_auth".
*/
TEST(TriggerConfig, DefaultTriggerMsgAuth)
{
char *str;
/* id <password> */
WEE_CHECK_MODIFIER_MSG_AUTH("id", "id");
WEE_CHECK_MODIFIER_MSG_AUTH("id ******", "id secret");
/* identify <password> */
WEE_CHECK_MODIFIER_MSG_AUTH("identify", "identify");
WEE_CHECK_MODIFIER_MSG_AUTH("identify ******", "identify secret");
/* set password <password> */
WEE_CHECK_MODIFIER_MSG_AUTH("set password", "set password");
WEE_CHECK_MODIFIER_MSG_AUTH("set password ******", "set password secret");
/* register <password> */
WEE_CHECK_MODIFIER_MSG_AUTH("register", "register");
WEE_CHECK_MODIFIER_MSG_AUTH("register ******", "register secret");
/* ghost <nick> <password> */
WEE_CHECK_MODIFIER_MSG_AUTH("ghost alice", "ghost alice");
WEE_CHECK_MODIFIER_MSG_AUTH("ghost alice ******", "ghost alice secret");
/* release <nick> <password> */
WEE_CHECK_MODIFIER_MSG_AUTH("release alice", "release alice");
WEE_CHECK_MODIFIER_MSG_AUTH("release alice ******", "release alice secret");
/* regain <nick> <password> */
WEE_CHECK_MODIFIER_MSG_AUTH("regain alice", "regain alice");
WEE_CHECK_MODIFIER_MSG_AUTH("regain alice ******", "regain alice secret");
/* recover <nick> <password> */
WEE_CHECK_MODIFIER_MSG_AUTH("recover alice", "recover alice");
WEE_CHECK_MODIFIER_MSG_AUTH("recover alice ******", "recover alice secret");
}
/*
* Tests default trigger "server_pass".
*/
TEST(TriggerConfig, DefaultTriggerServerPass)
{
char *str;
/*
* /server add <name> -password=xxx
* /server add <name> -sasl_password=xxx
*/
WEE_CHECK_MODIFIER_INPUT(
"/server add libera irc.libera.chat",
"/server add libera irc.libera.chat");
WEE_CHECK_MODIFIER_INPUT(
"/server add libera irc.libera.chat -password=******",
"/server add libera irc.libera.chat -password=secret");
WEE_CHECK_MODIFIER_INPUT(
"/server add libera irc.libera.chat -sasl_password=******",
"/server add libera irc.libera.chat -sasl_password=secret");
/*
* /connect <address> -password=xxx
* /connect <address> -sasl_password=xxx
*/
WEE_CHECK_MODIFIER_INPUT(
"/connect irc.libera.chat",
"/connect irc.libera.chat");
WEE_CHECK_MODIFIER_INPUT(
"/connect irc.libera.chat -password=******",
"/connect irc.libera.chat -password=secret");
WEE_CHECK_MODIFIER_INPUT(
"/connect irc.libera.chat -sasl_password=******",
"/connect irc.libera.chat -sasl_password=secret");
}
/*
* Test functions:
* trigger_config_change_enabled
*/
TEST(TriggerConfig, ChangeEnabled)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_change_trigger_enabled
*/
TEST(TriggerConfig, ChangeTriggerEnabled)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_change_trigger_hook
*/
TEST(TriggerConfig, ChangeTriggerHook)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_change_trigger_arguments
*/
TEST(TriggerConfig, ChangeTriggerArguments)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_change_trigger_regex
*/
TEST(TriggerConfig, ChangeTriggerRegex)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_change_trigger_command
*/
TEST(TriggerConfig, ChangeTriggerCommand)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_create_trigger_option
*/
TEST(TriggerConfig, ChangeTriggerOption)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_create_option_temp
*/
TEST(TriggerConfig, CreateOptionTemp)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_use_temp_triggers
*/
TEST(TriggerConfig, UseTempTriggers)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_trigger_read_cb
*/
TEST(TriggerConfig, TriggerReadCb)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_trigger_write_default_cb
*/
TEST(TriggerConfig, TriggerWriteDefaultCb)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_reload_cb
*/
TEST(TriggerConfig, ReloadCb)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_init
*/
TEST(TriggerConfig, Init)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_read
*/
TEST(TriggerConfig, Read)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_write
*/
TEST(TriggerConfig, Write)
{
/* TODO: write tests */
}
/*
* Test functions:
* trigger_config_free
*/
TEST(TriggerConfig, Free)
{
/* TODO: write tests */
}