mirror of
https://github.com/weechat/weechat.git
synced 2026-06-25 04:16:38 +02:00
25d7192677
The API functions `command` and `command_options` (when `split_newline` = 0, which is the default value) don't split on newline and then the first line is executed and the subsequent lines (after "\n") are ignored. There are no changes when the input has multiple lines filled by the user: the split is done and multiple commands are executed (for example if the user is pasting multiple commands to execute).
501 lines
8.5 KiB
C++
501 lines
8.5 KiB
C++
/*
|
|
* test-core-command.cpp - test command functions
|
|
*
|
|
* Copyright (C) 2022-2023 Sébastien Helleu <flashcode@flashtux.org>
|
|
*
|
|
* 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 <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include "CppUTest/TestHarness.h"
|
|
|
|
#include "tests/tests.h"
|
|
|
|
extern "C"
|
|
{
|
|
#ifndef HAVE_CONFIG_H
|
|
#define HAVE_CONFIG_H
|
|
#endif
|
|
#include "src/core/weechat.h"
|
|
#include "src/core/wee-command.h"
|
|
#include "src/core/wee-input.h"
|
|
#include "src/core/wee-string.h"
|
|
#include "src/gui/gui-buffer.h"
|
|
}
|
|
|
|
#define WEE_CMD_BUFFER(__buffer_name, __command) \
|
|
command_record (__buffer, __command);
|
|
|
|
#define WEE_CMD_CORE(__command) \
|
|
command_record ("core.weechat", __command);
|
|
|
|
#define WEE_CHECK_MSG_BUFFER(__buffer_name, __message) \
|
|
if (record_search (__buffer_name, __message) < 0) \
|
|
{ \
|
|
char **msg = command_build_error ( \
|
|
"Message not displayed on buffer " __buffer_name ": " \
|
|
"\"" __message "\n" \
|
|
"All messages displayed:\n"); \
|
|
record_dump (msg); \
|
|
FAIL(string_dyn_free (msg, 0)); \
|
|
}
|
|
|
|
#define WEE_CHECK_MSG_CORE(__message) \
|
|
WEE_CHECK_MSG_BUFFER("core.weechat", __message);
|
|
#define WEE_SEARCH_MSG_CORE(__message) \
|
|
record_search ("core.weechat", __message)
|
|
|
|
|
|
TEST_GROUP(CoreCommand)
|
|
{
|
|
void command_record (const char *buffer_name, const char *command)
|
|
{
|
|
struct t_gui_buffer *buffer;
|
|
|
|
buffer = gui_buffer_search_by_full_name (buffer_name);
|
|
if (!buffer)
|
|
{
|
|
FAIL("Buffer not found");
|
|
}
|
|
record_start ();
|
|
input_data (buffer, command, NULL, 0);
|
|
record_stop ();
|
|
}
|
|
|
|
char **command_build_error (const char *message)
|
|
{
|
|
char **msg;
|
|
|
|
msg = string_dyn_alloc (1024);
|
|
string_dyn_concat (msg, message, -1);
|
|
return msg;
|
|
}
|
|
};
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_away
|
|
*/
|
|
|
|
TEST(CoreCommand, Away)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_bar
|
|
*/
|
|
|
|
TEST(CoreCommand, Bar)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_buffer
|
|
*/
|
|
|
|
TEST(CoreCommand, Buffer)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_color
|
|
*/
|
|
|
|
TEST(CoreCommand, Color)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_command
|
|
*/
|
|
|
|
TEST(CoreCommand, Command)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_cursor
|
|
*/
|
|
|
|
TEST(CoreCommand, Cursor)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_debug
|
|
*/
|
|
|
|
TEST(CoreCommand, Debug)
|
|
{
|
|
const char *command_debug_unicode =
|
|
"/debug unicode "
|
|
"\u00E9" /* é */
|
|
"\u26C4" /* ⛄ (snowman without snow) */
|
|
"";
|
|
|
|
/* test command "/debug list" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug buffer" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug certs" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug color" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug cursor" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug dirs" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug dump" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug hdata" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug hooks" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug infolists" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug libs" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug memory" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug mouse" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug set" */
|
|
LONGS_EQUAL(0, weechat_debug_core);
|
|
WEE_CMD_CORE("/debug set core 1");
|
|
LONGS_EQUAL(1, weechat_debug_core);
|
|
WEE_CMD_CORE("/debug set core 2");
|
|
LONGS_EQUAL(2, weechat_debug_core);
|
|
WEE_CMD_CORE("/debug set core 0");
|
|
LONGS_EQUAL(0, weechat_debug_core);
|
|
|
|
/* test command "/debug tags" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug term" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug time" */
|
|
/* TODO: write tests */
|
|
|
|
/* test command "/debug unicode" */
|
|
WEE_CMD_CORE(command_debug_unicode);
|
|
WEE_CHECK_MSG_CORE(" \"\u00E9\u26C4\": 5 / 2, 2 / 3, 3, 3");
|
|
WEE_CHECK_MSG_CORE(" \"\u00E9\" (U+00E9, 233, 0xC3 0xA9): 2 / 1, 1 / 1, 1, 1, 1");
|
|
WEE_CHECK_MSG_CORE(" \"\u26C4\" (U+26C4, 9924, 0xE2 0x9B 0x84): 3 / 1, 1 / 2, 2, 2, 2");
|
|
|
|
/* test command "/debug windows" */
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_eval
|
|
*/
|
|
|
|
TEST(CoreCommand, Eval)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_filter
|
|
*/
|
|
|
|
TEST(CoreCommand, Filter)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_help
|
|
*/
|
|
|
|
TEST(CoreCommand, Help)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_history
|
|
*/
|
|
|
|
TEST(CoreCommand, History)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_input
|
|
*/
|
|
|
|
TEST(CoreCommand, Input)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_item
|
|
*/
|
|
|
|
TEST(CoreCommand, Item)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_key
|
|
*/
|
|
|
|
TEST(CoreCommand, Key)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_layout
|
|
*/
|
|
|
|
TEST(CoreCommand, Layout)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_mouse
|
|
*/
|
|
|
|
TEST(CoreCommand, Mouse)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_mute
|
|
*/
|
|
|
|
TEST(CoreCommand, Mute)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_plugin
|
|
*/
|
|
|
|
TEST(CoreCommand, Plugin)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_print
|
|
*/
|
|
|
|
TEST(CoreCommand, Print)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_proxy
|
|
*/
|
|
|
|
TEST(CoreCommand, Proxy)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_quit
|
|
*/
|
|
|
|
TEST(CoreCommand, Quit)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_reload
|
|
*/
|
|
|
|
TEST(CoreCommand, Reload)
|
|
{
|
|
WEE_CMD_CORE("/save");
|
|
WEE_CMD_CORE("/reload");
|
|
LONGS_EQUAL(0, WEE_SEARCH_MSG_CORE("Options reloaded from sec.conf"));
|
|
LONGS_EQUAL(1, WEE_SEARCH_MSG_CORE("Options reloaded from weechat.conf"));
|
|
LONGS_EQUAL(2, WEE_SEARCH_MSG_CORE("Options reloaded from plugins.conf"));
|
|
LONGS_EQUAL(3, WEE_SEARCH_MSG_CORE("Options reloaded from charset.conf"));
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_repeat
|
|
*/
|
|
|
|
TEST(CoreCommand, Repeat)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_reset
|
|
*/
|
|
|
|
TEST(CoreCommand, Reset)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_save
|
|
*/
|
|
|
|
TEST(CoreCommand, Save)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_secure
|
|
*/
|
|
|
|
TEST(CoreCommand, Secure)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_set
|
|
*/
|
|
|
|
TEST(CoreCommand, Set)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_toggle
|
|
*/
|
|
|
|
TEST(CoreCommand, Toggle)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_unset
|
|
*/
|
|
|
|
TEST(CoreCommand, Unset)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_upgrade
|
|
*/
|
|
|
|
TEST(CoreCommand, Upgrade)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_uptime
|
|
*/
|
|
|
|
TEST(CoreCommand, Uptime)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_version
|
|
*/
|
|
|
|
TEST(CoreCommand, Version)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_wait
|
|
*/
|
|
|
|
TEST(CoreCommand, Wait)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|
|
|
|
/*
|
|
* Tests functions:
|
|
* command_window
|
|
*/
|
|
|
|
TEST(CoreCommand, Window)
|
|
{
|
|
/* TODO: write tests */
|
|
}
|