1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-03 00:03:12 +02:00

irc: fix extract of isupport value when it is last in list and without value (closes #1807)

This commit is contained in:
Sébastien Helleu
2022-08-15 18:14:03 +02:00
parent fb14e67364
commit e614410815
5 changed files with 119 additions and 47 deletions
+71 -1
View File
@@ -275,7 +275,77 @@ TEST(IrcServer, GetAlternateNick)
TEST(IrcServer, GetIsupportValue)
{
/* TODO: write tests */
struct t_irc_server *server;
server = irc_server_alloc ("test_clienttagdeny");
CHECK(server);
if (server->isupport)
free (server->isupport);
server->isupport = strdup ("");
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, NULL));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, ""));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "TEST"));
if (server->isupport)
free (server->isupport);
server->isupport = strdup ("AWAYLEN=307 BOT=B CASEMAPPING=ascii "
"CHANLIMIT=#:10 EMPTY= INVEX KICKLEN=307 WHOX");
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, NULL));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, ""));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "xxx"));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "AWAYLE"));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "WHO"));
STRCMP_EQUAL("307", irc_server_get_isupport_value (server, "AWAYLEN"));
STRCMP_EQUAL("B", irc_server_get_isupport_value (server, "BOT"));
STRCMP_EQUAL("ascii", irc_server_get_isupport_value (server, "CASEMAPPING"));
STRCMP_EQUAL("#:10", irc_server_get_isupport_value (server, "CHANLIMIT"));
STRCMP_EQUAL("", irc_server_get_isupport_value (server, "EMPTY"));
STRCMP_EQUAL("", irc_server_get_isupport_value (server, "INVEX"));
STRCMP_EQUAL("307", irc_server_get_isupport_value (server, "KICKLEN"));
STRCMP_EQUAL("", irc_server_get_isupport_value (server, "WHOX"));
if (server->isupport)
free (server->isupport);
server->isupport = strdup ("TEST SECOND");
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "T"));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "TES"));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "EST"));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "TESTT"));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "SEC"));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "COND"));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "SECONDD"));
STRCMP_EQUAL("", irc_server_get_isupport_value (server, "TEST"));
STRCMP_EQUAL("", irc_server_get_isupport_value (server, "SECOND"));
if (server->isupport)
free (server->isupport);
server->isupport = strdup ("TEST=abc");
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "T"));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "TES"));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "EST"));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "TESTT"));
STRCMP_EQUAL("abc", irc_server_get_isupport_value (server, "TEST"));
if (server->isupport)
free (server->isupport);
server->isupport = strdup (" TEST=abc ");
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "T"));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "TES"));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "EST"));
POINTERS_EQUAL(NULL, irc_server_get_isupport_value (server, "TESTT"));
STRCMP_EQUAL("abc", irc_server_get_isupport_value (server, "TEST"));
irc_server_free (server);
}
/*