diff --git a/tests/unit/plugins/irc/test-irc-protocol.cpp b/tests/unit/plugins/irc/test-irc-protocol.cpp index e4ee23d2a..55aa6d5d2 100644 --- a/tests/unit/plugins/irc/test-irc-protocol.cpp +++ b/tests/unit/plugins/irc/test-irc-protocol.cpp @@ -42,6 +42,7 @@ extern const char *irc_protocol_nick_address (struct t_irc_server *server, struct t_irc_nick *nick, const char *nickname, const char *address); +extern struct t_hashtable *irc_protocol_get_message_tags (const char *tags); } #include "tests/tests.h" @@ -157,6 +158,39 @@ TEST(IrcProtocol, Tags) "example.com")); } +/* + * Tests functions: + * irc_protocol_get_message_tags + */ + +TEST(IrcProtocol, GetMessageTags) +{ + struct t_hashtable *hashtable; + + POINTERS_EQUAL(NULL, irc_protocol_get_message_tags (NULL)); + POINTERS_EQUAL(NULL, irc_protocol_get_message_tags ("")); + + hashtable = irc_protocol_get_message_tags ("abc"); + CHECK(hashtable); + LONGS_EQUAL(1, hashtable->items_count); + POINTERS_EQUAL(NULL, (const char *)hashtable_get (hashtable, "abc")); + hashtable_free (hashtable); + + hashtable = irc_protocol_get_message_tags ("abc=def"); + CHECK(hashtable); + LONGS_EQUAL(1, hashtable->items_count); + STRCMP_EQUAL("def", (const char *)hashtable_get (hashtable, "abc")); + hashtable_free (hashtable); + + hashtable = irc_protocol_get_message_tags ("aaa=bbb;ccc;example.com/ddd=eee"); + CHECK(hashtable); + LONGS_EQUAL(3, hashtable->items_count); + STRCMP_EQUAL("bbb", (const char *)hashtable_get (hashtable, "aaa")); + POINTERS_EQUAL(NULL, (const char *)hashtable_get (hashtable, "ccc")); + STRCMP_EQUAL("eee", (const char *)hashtable_get (hashtable, "example.com/ddd")); + hashtable_free (hashtable); +} + /* * Tests functions: * irc_protocol_parse_time