]> jfr.im git - irc/freenode/solanum.git/commitdiff
Add tests for opmod_send_statusmsg
authorEd Kellett <redacted>
Sun, 5 Jul 2020 18:08:33 +0000 (19:08 +0100)
committerEd Kellett <redacted>
Mon, 6 Jul 2020 09:36:35 +0000 (10:36 +0100)
tests/send1.c

index a1671ac39c0f548e07296160afddac544f4b8a40..13d4a218144e0bbc0d3d5f08a5c974048fc823fe 100644 (file)
@@ -1182,7 +1182,7 @@ static void sendto_channel_opmod__local(void)
        is_client_sendq_empty(local_chan_v, "Not +o; " MSG);
        is_client_sendq_empty(local_chan_p, "Message source; " MSG);
        is_client_sendq_empty(local_chan_d, "Deaf; " MSG);
-       is_client_sendq(":" TEST_ME_ID " NOTICE @" TEST_CHANNEL " :<LChanPeon:#test> Hello World!" CRLF, server, MSG);
+       is_client_sendq(":" TEST_ME_ID " NOTICE @" TEST_CHANNEL " :<LChanPeon:" TEST_CHANNEL "> Hello World!" CRLF, server, MSG);
        is_client_sendq_empty(server2, "No users to receive message; " MSG);
 
        // Moderated channel
@@ -1211,6 +1211,73 @@ static void sendto_channel_opmod__local(void)
        is_client_sendq_empty(local_chan_d, "Deaf; " MSG);
        is_client_sendq(":" TEST_ME_ID "90004 TEST =" TEST_CHANNEL " :Hello World!" CRLF, server, MSG);
        is_client_sendq_empty(server2, "No users to receive message; " MSG);
+
+       standard_free();
+}
+
+static void sendto_channel_opmod_statusmsg__local(void)
+{
+       standard_init();
+       ConfigChannel.opmod_send_statusmsg = true;
+
+       // This function does not support TS5...
+       standard_ids();
+
+       // Without CAP_CHW | CAP_EOPMOD
+       standard_server_caps(0, CAP_CHW | CAP_EOPMOD);
+
+       sendto_channel_opmod(local_chan_p, local_chan_p, channel, "TEST", "Hello World!");
+       is_client_sendq_empty(user, "Not on channel; " MSG);
+       is_client_sendq(":LChanPeon" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_o, "On channel; " MSG);
+       is_client_sendq(":LChanPeon" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_ov, "On channel; " MSG);
+       is_client_sendq_empty(local_chan_v, "Not +o; " MSG);
+       is_client_sendq_empty(local_chan_p, "Message source; " MSG);
+       is_client_sendq_empty(local_chan_d, "Deaf; " MSG);
+       is_client_sendq_empty(server, "No users to receive message; " MSG);
+       is_client_sendq_empty(server2, "No users to receive message; " MSG);
+
+       // With CAP_CHW, without CAP_EOPMOD
+       standard_server_caps(CAP_CHW, CAP_EOPMOD);
+
+       sendto_channel_opmod(local_chan_p, local_chan_p, channel, "TEST", "Hello World!");
+       is_client_sendq_empty(user, "Not on channel; " MSG);
+       is_client_sendq(":LChanPeon" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_o, "On channel; " MSG);
+       is_client_sendq(":LChanPeon" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_ov, "On channel; " MSG);
+       is_client_sendq_empty(local_chan_v, "Not +o; " MSG);
+       is_client_sendq_empty(local_chan_p, "Message source; " MSG);
+       is_client_sendq_empty(local_chan_d, "Deaf; " MSG);
+       is_client_sendq(":" TEST_ME_ID " NOTICE @" TEST_CHANNEL " :<LChanPeon:" TEST_CHANNEL "> Hello World!" CRLF, server, MSG);
+       is_client_sendq_empty(server2, "No users to receive message; " MSG);
+
+       // Moderated channel
+       channel->mode.mode |= MODE_MODERATED;
+
+       sendto_channel_opmod(local_chan_p, local_chan_p, channel, "TEST", "Hello World!");
+       is_client_sendq_empty(user, "Not on channel; " MSG);
+       is_client_sendq(":LChanPeon" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_o, "On channel; " MSG);
+       is_client_sendq(":LChanPeon" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_ov, "On channel; " MSG);
+       is_client_sendq_empty(local_chan_v, "Not +o; " MSG);
+       is_client_sendq_empty(local_chan_p, "Message source; " MSG);
+       is_client_sendq_empty(local_chan_d, "Deaf; " MSG);
+       is_client_sendq(":" TEST_ME_ID "90004 TEST @" TEST_CHANNEL " :Hello World!" CRLF, server, MSG);
+       is_client_sendq_empty(server2, "No users to receive message; " MSG);
+
+       // With CAP_CHW | CAP_EOPMOD
+       channel->mode.mode &= ~MODE_MODERATED;
+       standard_server_caps(CAP_CHW | CAP_EOPMOD, 0);
+
+       sendto_channel_opmod(local_chan_p, local_chan_p, channel, "TEST", "Hello World!");
+       is_client_sendq_empty(user, "Not on channel; " MSG);
+       is_client_sendq(":LChanPeon" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_o, "On channel; " MSG);
+       is_client_sendq(":LChanPeon" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_ov, "On channel; " MSG);
+       is_client_sendq_empty(local_chan_v, "Not +o; " MSG);
+       is_client_sendq_empty(local_chan_p, "Message source; " MSG);
+       is_client_sendq_empty(local_chan_d, "Deaf; " MSG);
+       is_client_sendq(":" TEST_ME_ID "90004 TEST =" TEST_CHANNEL " :Hello World!" CRLF, server, MSG);
+       is_client_sendq_empty(server2, "No users to receive message; " MSG);
+
+       ConfigChannel.opmod_send_statusmsg = false;
+       standard_free();
 }
 
 static void sendto_channel_opmod__local__tags(void)
@@ -1248,7 +1315,7 @@ static void sendto_channel_opmod__local__tags(void)
        is_client_sendq_empty(local_chan_v, "Not +o; " MSG);
        is_client_sendq_empty(local_chan_p, "Message source; " MSG);
        is_client_sendq_empty(local_chan_d, "Deaf; " MSG);
-       is_client_sendq(":" TEST_ME_ID " NOTICE @" TEST_CHANNEL " :<LChanPeon:#test> Hello World!" CRLF, server, MSG);
+       is_client_sendq(":" TEST_ME_ID " NOTICE @" TEST_CHANNEL " :<LChanPeon:" TEST_CHANNEL "> Hello World!" CRLF, server, MSG);
        is_client_sendq_empty(server2, "No users to receive message; " MSG);
 
        // Moderated channel
@@ -1282,6 +1349,8 @@ static void sendto_channel_opmod__local__tags(void)
        is_client_sendq_empty(local_chan_d, "Deaf; " MSG);
        is_client_sendq(":" TEST_ME_ID "90004 TEST =" TEST_CHANNEL " :Hello World!" CRLF, server, MSG);
        is_client_sendq_empty(server2, "No users to receive message; " MSG);
+
+       standard_free();
 }
 
 static void sendto_channel_opmod__remote(void)
@@ -1310,7 +1379,7 @@ static void sendto_channel_opmod__remote(void)
        is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX " TEST " TEST_CHANNEL " :Hello World!" CRLF, local_chan_ov, "On channel; " MSG);
        is_client_sendq_empty(local_chan_v, "Not +o; " MSG);
        is_client_sendq_empty(local_chan_d, "Deaf; " MSG);
-       is_client_sendq(":" TEST_SERVER2_ID " NOTICE @" TEST_CHANNEL " :<R2ChanDeaf:#test> Hello World!" CRLF, server, MSG);
+       is_client_sendq(":" TEST_SERVER2_ID " NOTICE @" TEST_CHANNEL " :<R2ChanDeaf:" TEST_CHANNEL "> Hello World!" CRLF, server, MSG);
        is_client_sendq_empty(server2, "Message source; " MSG);
 
        // Moderated channel
@@ -1339,6 +1408,63 @@ static void sendto_channel_opmod__remote(void)
        standard_free();
 }
 
+static void sendto_channel_opmod_statusmsg__remote(void)
+{
+       standard_init();
+       ConfigChannel.opmod_send_statusmsg = true;
+
+       // This function does not support TS5...
+       standard_ids();
+
+       // Without CAP_CHW | CAP_EOPMOD
+       standard_server_caps(0, CAP_CHW | CAP_EOPMOD);
+
+       sendto_channel_opmod(server2, remote2_chan_d, channel, "TEST", "Hello World!");
+       is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_o, "On channel; " MSG);
+       is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_ov, "On channel; " MSG);
+       is_client_sendq_empty(local_chan_v, "Not +o; " MSG);
+       is_client_sendq_empty(local_chan_d, "Deaf; " MSG);
+       is_client_sendq_empty(server, "Message source; " MSG);
+       is_client_sendq_empty(server2, "No users to receive message; " MSG);
+
+       // With CAP_CHW, without CAP_EOPMOD
+       standard_server_caps(CAP_CHW, CAP_EOPMOD);
+
+       sendto_channel_opmod(server2, remote2_chan_d, channel, "TEST", "Hello World!");
+       is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_o, "On channel; " MSG);
+       is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_ov, "On channel; " MSG);
+       is_client_sendq_empty(local_chan_v, "Not +o; " MSG);
+       is_client_sendq_empty(local_chan_d, "Deaf; " MSG);
+       is_client_sendq(":" TEST_SERVER2_ID " NOTICE @" TEST_CHANNEL " :<R2ChanDeaf:" TEST_CHANNEL "> Hello World!" CRLF, server, MSG);
+       is_client_sendq_empty(server2, "Message source; " MSG);
+
+       // Moderated channel
+       channel->mode.mode |= MODE_MODERATED;
+
+       sendto_channel_opmod(server2, remote2_chan_d, channel, "TEST", "Hello World!");
+       is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_o, "On channel; " MSG);
+       is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_ov, "On channel; " MSG);
+       is_client_sendq_empty(local_chan_v, "Not +o; " MSG);
+       is_client_sendq_empty(local_chan_d, "Deaf; " MSG);
+       is_client_sendq(":" TEST_SERVER2_ID "90205 TEST @" TEST_CHANNEL " :Hello World!" CRLF, server, MSG);
+       is_client_sendq_empty(server2, "Message source; " MSG);
+
+       // With CAP_CHW | CAP_EOPMOD
+       channel->mode.mode &= ~MODE_MODERATED;
+       standard_server_caps(CAP_CHW | CAP_EOPMOD, 0);
+
+       sendto_channel_opmod(server2, remote2_chan_d, channel, "TEST", "Hello World!");
+       is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_o, "On channel; " MSG);
+       is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX " TEST @" TEST_CHANNEL " :Hello World!" CRLF, local_chan_ov, "On channel; " MSG);
+       is_client_sendq_empty(local_chan_v, "Not +o; " MSG);
+       is_client_sendq_empty(local_chan_d, "Deaf; " MSG);
+       is_client_sendq(":" TEST_SERVER2_ID "90205 TEST =" TEST_CHANNEL " :Hello World!" CRLF, server, MSG);
+       is_client_sendq_empty(server2, "Message source; " MSG);
+
+       ConfigChannel.opmod_send_statusmsg = false;
+       standard_free();
+}
+
 static void sendto_channel_opmod__remote__tags(void)
 {
        standard_init();
@@ -1370,7 +1496,7 @@ static void sendto_channel_opmod__remote__tags(void)
        is_client_sendq("@time=" ADVENTURE_TIME " :R2ChanDeaf" TEST_ID_SUFFIX " TEST " TEST_CHANNEL " :Hello World!" CRLF, local_chan_ov, "On channel; " MSG);
        is_client_sendq_empty(local_chan_v, "Not +o; " MSG);
        is_client_sendq_empty(local_chan_d, "Deaf; " MSG);
-       is_client_sendq(":" TEST_SERVER2_ID " NOTICE @" TEST_CHANNEL " :<R2ChanDeaf:#test> Hello World!" CRLF, server, MSG);
+       is_client_sendq(":" TEST_SERVER2_ID " NOTICE @" TEST_CHANNEL " :<R2ChanDeaf:" TEST_CHANNEL "> Hello World!" CRLF, server, MSG);
        is_client_sendq_empty(server2, "Message source; " MSG);
 
        // Moderated channel
@@ -4939,8 +5065,10 @@ int main(int argc, char *argv[])
        sendto_channel_flags__remote__chanop_voice();
 
        sendto_channel_opmod__local();
+       sendto_channel_opmod_statusmsg__local();
        sendto_channel_opmod__local__tags();
        sendto_channel_opmod__remote();
+       sendto_channel_opmod_statusmsg__remote();
        sendto_channel_opmod__remote__tags();
        sendto_channel_local1();
        sendto_channel_local1__tags();