1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-01 23:36:37 +02:00

irc: use parsed command parameters in "tagmsg" command callback

This commit is contained in:
Sébastien Helleu
2021-10-15 19:17:53 +02:00
parent 03e0122155
commit 5389ceb237
2 changed files with 40 additions and 10 deletions
+35 -2
View File
@@ -38,6 +38,8 @@ extern "C"
#include "src/plugins/irc/irc-config.h"
#include "src/plugins/irc/irc-nick.h"
#include "src/plugins/irc/irc-server.h"
#include "src/plugins/typing/typing-config.h"
#include "src/plugins/typing/typing-status.h"
extern int irc_protocol_is_numeric_command (const char *str);
extern int irc_protocol_log_level_for_command (const char *command);
@@ -1819,19 +1821,50 @@ TEST(IrcProtocolWithServer, setname_with_setname_cap)
TEST(IrcProtocolWithServer, tagmsg)
{
struct t_gui_buffer *ptr_buffer;
struct t_typing_status *ptr_typing_status;
SRV_INIT_JOIN2;
/* not enough arguments */
/* not enough parameters */
RECV(":bob!user@host TAGMSG");
CHECK_ERROR_ARGS("tagmsg", 2, 3);
CHECK_ERROR_PARAMS("tagmsg", 0, 1);
/* no tags */
RECV(":bob!user@host TAGMSG #test");
CHECK_NO_MSG;
RECV(":bob!user@host TAGMSG :#test");
CHECK_NO_MSG;
/* with tags */
RECV("@tag1=123;tag2=456 :bob!user@host TAGMSG #test");
CHECK_NO_MSG;
RECV("@tag1=123;tag2=456 :bob!user@host TAGMSG :#test");
CHECK_NO_MSG;
/* check typing status */
ptr_buffer = ptr_server->channels->buffer;
config_file_option_set (irc_config_look_typing_status_nicks, "on", 1);
config_file_option_set (typing_config_look_enabled_nicks, "on", 1);
POINTERS_EQUAL(NULL, typing_status_nick_search (ptr_buffer, "bob"));
RECV("@+typing=active :bob!user@host TAGMSG #test");
ptr_typing_status = typing_status_nick_search (ptr_buffer, "bob");
CHECK(ptr_typing_status);
LONGS_EQUAL(TYPING_STATUS_STATE_TYPING, ptr_typing_status->state);
RECV("@+typing=paused :bob!user@host TAGMSG :#test");
ptr_typing_status = typing_status_nick_search (ptr_buffer, "bob");
CHECK(ptr_typing_status);
LONGS_EQUAL(TYPING_STATUS_STATE_PAUSED, ptr_typing_status->state);
RECV("@+typing=done :bob!user@host TAGMSG #test");
POINTERS_EQUAL(NULL, typing_status_nick_search (ptr_buffer, "bob"));
config_file_option_reset (typing_config_look_enabled_nicks, 1);
config_file_option_reset (irc_config_look_typing_status_nicks, 1);
}
/*