2 * send1.c: Test sendto_* under various conditions
3 * Copyright 2017 Simon Arlott
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
24 #include "tap/basic.h"
26 #include "ircd_util.h"
27 #include "client_util.h"
34 #define MSG "%s:%d (%s)", __FILE__, __LINE__, __FUNCTION__
37 #define ADVENTURE_TIME "2017-07-14T02:40:00.000Z"
39 int rb_gettimeofday(struct timeval
*tv
, void *tz
)
45 tv
->tv_sec
= 1500000000;
50 unsigned int CAP_ACCOUNT_TAG
;
51 unsigned int CAP_SERVER_TIME
;
52 unsigned int CAP_INVITE_NOTIFY
;
54 static struct Client
*user
;
55 static struct Client
*server
;
56 static struct Client
*remote
;
57 static struct Client
*server2
;
58 static struct Client
*remote2
;
59 static struct Client
*server3
;
60 static struct Client
*remote3
;
61 static struct Channel
*channel
;
62 static struct Channel
*lchannel
;
64 static struct Client
*local_chan_o
;
65 static struct Client
*local_chan_ov
;
66 static struct Client
*local_chan_v
;
67 static struct Client
*local_chan_p
;
68 static struct Client
*local_chan_d
;
69 static struct Client
*local_no_chan
;
71 static struct Client
*remote_chan_o
;
72 static struct Client
*remote_chan_ov
;
73 static struct Client
*remote_chan_v
;
74 static struct Client
*remote_chan_p
;
75 static struct Client
*remote_chan_d
;
77 static struct Client
*remote2_chan_p
;
78 static struct Client
*remote2_chan_d
;
80 static void standard_init(void)
82 user
= make_local_person();
83 server
= make_remote_server(&me
);
84 remote
= make_remote_person(server
);
85 server2
= make_remote_server_name(&me
, TEST_SERVER2_NAME
);
86 remote2
= make_remote_person_nick(server2
, TEST_REMOTE2_NICK
);
87 server3
= make_remote_server_name(&me
, TEST_SERVER3_NAME
);
88 remote3
= make_remote_person_nick(server3
, TEST_REMOTE3_NICK
);
90 // Expose potential bugs in overlapping capabilities
91 server
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
92 server
->localClient
->caps
|= CAP_SERVER_TIME
;
93 server2
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
94 server2
->localClient
->caps
|= CAP_SERVER_TIME
;
95 server3
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
96 server3
->localClient
->caps
|= CAP_SERVER_TIME
;
98 local_chan_o
= make_local_person_nick("LChanOp");
99 local_chan_ov
= make_local_person_nick("LChanOpVoice");
100 local_chan_v
= make_local_person_nick("LChanVoice");
101 local_chan_p
= make_local_person_nick("LChanPeon");
102 local_chan_d
= make_local_person_nick("LChanDeaf");
103 local_chan_d
->umodes
|= UMODE_DEAF
;
104 local_no_chan
= make_local_person_nick("LNoChan");
106 remote_chan_o
= make_remote_person_nick(server
, "RChanOp");
107 remote_chan_ov
= make_remote_person_nick(server
, "RChanOpVoice");
108 remote_chan_v
= make_remote_person_nick(server
, "RChanVoice");
109 remote_chan_p
= make_remote_person_nick(server
, "RChanPeon");
110 remote_chan_d
= make_remote_person_nick(server
, "RChanDeaf");
111 remote_chan_d
->umodes
|= UMODE_DEAF
;
113 remote2_chan_p
= make_remote_person_nick(server2
, "R2ChanPeon");
114 remote2_chan_d
= make_remote_person_nick(server2
, "R2ChanDeaf");
115 remote2_chan_d
->umodes
|= UMODE_DEAF
;
117 channel
= make_channel();
119 add_user_to_channel(channel
, local_chan_o
, CHFL_CHANOP
);
120 add_user_to_channel(channel
, local_chan_ov
, CHFL_CHANOP
| CHFL_VOICE
);
121 add_user_to_channel(channel
, local_chan_v
, CHFL_VOICE
);
122 add_user_to_channel(channel
, local_chan_p
, CHFL_PEON
);
123 add_user_to_channel(channel
, local_chan_d
, CHFL_CHANOP
| CHFL_VOICE
);
125 add_user_to_channel(channel
, remote_chan_o
, CHFL_CHANOP
);
126 add_user_to_channel(channel
, remote_chan_ov
, CHFL_CHANOP
| CHFL_VOICE
);
127 add_user_to_channel(channel
, remote_chan_v
, CHFL_VOICE
);
128 add_user_to_channel(channel
, remote_chan_p
, CHFL_PEON
);
129 add_user_to_channel(channel
, remote_chan_d
, CHFL_CHANOP
| CHFL_VOICE
);
131 add_user_to_channel(channel
, remote2_chan_p
, CHFL_PEON
);
132 add_user_to_channel(channel
, remote2_chan_d
, CHFL_CHANOP
| CHFL_VOICE
);
134 lchannel
= allocate_channel("&test");
136 add_user_to_channel(lchannel
, user
, CHFL_PEON
);
137 add_user_to_channel(lchannel
, remote
, CHFL_PEON
);
138 add_user_to_channel(lchannel
, remote2
, CHFL_PEON
);
139 add_user_to_channel(lchannel
, remote3
, CHFL_PEON
);
142 static void standard_ids(void)
144 strcpy(user
->id
, TEST_ID
);
145 strcpy(server
->id
, TEST_SERVER_ID
);
146 strcpy(remote
->id
, TEST_REMOTE_ID
);
147 strcpy(server2
->id
, TEST_SERVER2_ID
);
148 strcpy(remote2
->id
, TEST_REMOTE2_ID
);
149 strcpy(server3
->id
, TEST_SERVER3_ID
);
150 strcpy(remote3
->id
, TEST_REMOTE3_ID
);
152 strcpy(local_chan_o
->id
, TEST_ME_ID
"90001");
153 strcpy(local_chan_ov
->id
, TEST_ME_ID
"90002");
154 strcpy(local_chan_v
->id
, TEST_ME_ID
"90003");
155 strcpy(local_chan_p
->id
, TEST_ME_ID
"90004");
156 strcpy(local_chan_d
->id
, TEST_ME_ID
"90005");
158 strcpy(remote_chan_o
->id
, TEST_SERVER_ID
"90101");
159 strcpy(remote_chan_ov
->id
, TEST_SERVER_ID
"90102");
160 strcpy(remote_chan_v
->id
, TEST_SERVER_ID
"90103");
161 strcpy(remote_chan_p
->id
, TEST_SERVER_ID
"90104");
162 strcpy(remote_chan_d
->id
, TEST_SERVER_ID
"90105");
164 strcpy(remote2_chan_p
->id
, TEST_SERVER2_ID
"90204");
165 strcpy(remote2_chan_d
->id
, TEST_SERVER2_ID
"90205");
168 static void standard_server_caps(unsigned int add
, unsigned int remove
)
170 server
->localClient
->caps
|= add
;
171 server2
->localClient
->caps
|= add
;
172 server3
->localClient
->caps
|= add
;
174 server
->localClient
->caps
&= ~remove
;
175 server2
->localClient
->caps
&= ~remove
;
176 server3
->localClient
->caps
&= ~remove
;
179 static void standard_free(void)
181 remove_remote_person(remote2_chan_p
);
182 remove_remote_person(remote2_chan_d
);
184 remove_remote_person(remote_chan_o
);
185 remove_remote_person(remote_chan_ov
);
186 remove_remote_person(remote_chan_v
);
187 remove_remote_person(remote_chan_p
);
188 remove_remote_person(remote_chan_d
);
190 remove_local_person(local_chan_o
);
191 remove_local_person(local_chan_ov
);
192 remove_local_person(local_chan_v
);
193 remove_local_person(local_chan_p
);
194 remove_local_person(local_chan_d
);
195 remove_local_person(local_no_chan
);
197 remove_remote_person(remote3
);
198 remove_remote_server(server3
);
199 remove_remote_person(remote2
);
200 remove_remote_server(server2
);
201 remove_remote_person(remote
);
202 remove_remote_server(server
);
203 remove_local_person(user
);
206 static void sendto_one1(void)
210 sendto_one(user
, "Hello %s!", "World");
211 is_client_sendq("Hello World!" CRLF
, user
, MSG
);
213 sendto_one(server
, "Hello %s!", "World");
214 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
216 sendto_one(remote
, "Hello %s!", "World");
217 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
222 static void sendto_one_prefix1(void)
227 sendto_one_prefix(user
, &me
, "TEST", ":Hello %s!", "World");
228 is_client_sendq(":" TEST_ME_NAME
" TEST " TEST_NICK
" :Hello World!" CRLF
, user
, MSG
);
230 sendto_one_prefix(user
, user
, "TEST", ":Hello %s!", "World");
231 is_client_sendq(":" TEST_NICK
" TEST " TEST_NICK
" :Hello World!" CRLF
, user
, MSG
);
233 sendto_one_prefix(user
, remote
, "TEST", ":Hello %s!", "World");
234 is_client_sendq(":" TEST_REMOTE_NICK
" TEST " TEST_NICK
" :Hello World!" CRLF
, user
, MSG
);
236 sendto_one_prefix(user
, server
, "TEST", ":Hello %s!", "World");
237 is_client_sendq(":" TEST_SERVER_NAME
" TEST " TEST_NICK
" :Hello World!" CRLF
, user
, MSG
);
239 // Remote (without ID)
240 sendto_one_prefix(remote
, &me
, "TEST", ":Hello %s!", "World");
241 is_client_sendq(":" TEST_ME_NAME
" TEST " TEST_REMOTE_NICK
" :Hello World!" CRLF
, server
, MSG
);
243 sendto_one_prefix(remote
, user
, "TEST", ":Hello %s!", "World");
244 is_client_sendq(":" TEST_NICK
" TEST " TEST_REMOTE_NICK
" :Hello World!" CRLF
, server
, MSG
);
246 sendto_one_prefix(remote
, remote
, "TEST", ":Hello %s!", "World");
247 is_client_sendq(":" TEST_REMOTE_NICK
" TEST " TEST_REMOTE_NICK
" :Hello World!" CRLF
, server
, MSG
);
249 sendto_one_prefix(remote
, server
, "TEST", ":Hello %s!", "World");
250 is_client_sendq(":" TEST_SERVER_NAME
" TEST " TEST_REMOTE_NICK
" :Hello World!" CRLF
, server
, MSG
);
255 sendto_one_prefix(remote
, &me
, "TEST", ":Hello %s!", "World");
256 is_client_sendq(":" TEST_ME_ID
" TEST " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
258 sendto_one_prefix(remote
, user
, "TEST", ":Hello %s!", "World");
259 is_client_sendq(":" TEST_ID
" TEST " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
261 sendto_one_prefix(remote
, remote
, "TEST", ":Hello %s!", "World");
262 is_client_sendq(":" TEST_REMOTE_ID
" TEST " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
264 sendto_one_prefix(remote
, server
, "TEST", ":Hello %s!", "World");
265 is_client_sendq(":" TEST_SERVER_ID
" TEST " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
270 static void sendto_one_notice1(void)
275 sendto_one_notice(user
, ":Hello %s!", "World");
276 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_NICK
" :Hello World!" CRLF
, user
, MSG
);
278 // Remote (without ID)
279 sendto_one_notice(remote
, ":Hello %s!", "World");
280 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :Hello World!" CRLF
, server
, MSG
);
285 sendto_one_notice(remote
, ":Hello %s!", "World");
286 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
288 // Local (unregistered)
289 user
->name
[0] = '\0';
290 sendto_one_notice(user
, ":Hello %s!", "World");
291 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :Hello World!" CRLF
, user
, MSG
);
296 static void sendto_one_numeric1(void)
301 sendto_one_numeric(user
, 1, "Hello %s!", "World");
302 is_client_sendq(":" TEST_ME_NAME
" 001 " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
304 // Remote (without ID)
305 sendto_one_numeric(server
, 1, "Hello %s!", "World");
306 is_client_sendq(":" TEST_ME_NAME
" 001 " TEST_SERVER_NAME
" Hello World!" CRLF
, server
, MSG
);
308 sendto_one_numeric(remote
, 1, "Hello %s!", "World");
309 is_client_sendq(":" TEST_ME_NAME
" 001 " TEST_REMOTE_NICK
" Hello World!" CRLF
, server
, MSG
);
314 sendto_one_numeric(server
, 1, "Hello %s!", "World");
315 is_client_sendq(":" TEST_ME_ID
" 001 " TEST_SERVER_ID
" Hello World!" CRLF
, server
, MSG
);
317 sendto_one_numeric(remote
, 1, "Hello %s!", "World");
318 is_client_sendq(":" TEST_ME_ID
" 001 " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
320 // Local (unregistered)
321 user
->name
[0] = '\0';
322 sendto_one_numeric(user
, 1, "Hello %s!", "World");
323 is_client_sendq(":" TEST_ME_NAME
" 001 * Hello World!" CRLF
, user
, MSG
);
328 static void sendto_server1(void)
332 // TODO test capabilities
335 sendto_server(NULL
, channel
, 0, 0, "Hello %s!", "World");
336 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
337 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
338 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
340 sendto_server(NULL
, lchannel
, 0, 0, "Hello %s!", "World");
341 is_client_sendq_empty(server
, MSG
);
342 is_client_sendq_empty(server2
, MSG
);
343 is_client_sendq_empty(server3
, MSG
);
345 sendto_server(NULL
, NULL
, 0, 0, "Hello %s!", "World");
346 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
347 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
348 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
350 sendto_server(user
, channel
, 0, 0, "Hello %s!", "World");
351 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
352 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
353 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
355 sendto_server(user
, lchannel
, 0, 0, "Hello %s!", "World");
356 is_client_sendq_empty(server
, MSG
);
357 is_client_sendq_empty(server2
, MSG
);
358 is_client_sendq_empty(server3
, MSG
);
360 sendto_server(user
, NULL
, 0, 0, "Hello %s!", "World");
361 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
362 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
363 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
366 sendto_server(remote
, channel
, 0, 0, "Hello %s!", "World");
367 is_client_sendq_empty(server
, MSG
);
368 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
369 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
371 sendto_server(remote
, lchannel
, 0, 0, "Hello %s!", "World");
372 is_client_sendq_empty(server
, MSG
);
373 is_client_sendq_empty(server2
, MSG
);
374 is_client_sendq_empty(server3
, MSG
);
376 sendto_server(remote
, NULL
, 0, 0, "Hello %s!", "World");
377 is_client_sendq_empty(server
, MSG
);
378 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
379 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
381 sendto_server(remote2
, channel
, 0, 0, "Hello %s!", "World");
382 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
383 is_client_sendq_empty(server2
, MSG
);
384 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
386 sendto_server(remote2
, lchannel
, 0, 0, "Hello %s!", "World");
387 is_client_sendq_empty(server
, MSG
);
388 is_client_sendq_empty(server2
, MSG
);
389 is_client_sendq_empty(server3
, MSG
);
391 sendto_server(remote2
, NULL
, 0, 0, "Hello %s!", "World");
392 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
393 is_client_sendq_empty(server2
, MSG
);
394 is_client_sendq("Hello World!" CRLF
, server3
, MSG
);
396 sendto_server(remote3
, channel
, 0, 0, "Hello %s!", "World");
397 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
398 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
399 is_client_sendq_empty(server3
, MSG
);
401 sendto_server(remote3
, lchannel
, 0, 0, "Hello %s!", "World");
402 is_client_sendq_empty(server
, MSG
);
403 is_client_sendq_empty(server2
, MSG
);
404 is_client_sendq_empty(server3
, MSG
);
406 sendto_server(remote3
, NULL
, 0, 0, "Hello %s!", "World");
407 is_client_sendq("Hello World!" CRLF
, server
, MSG
);
408 is_client_sendq("Hello World!" CRLF
, server2
, MSG
);
409 is_client_sendq_empty(server3
, MSG
);
414 static void sendto_channel_flags__local__all_members(void)
418 sendto_channel_flags(local_chan_p
, ALL_MEMBERS
, local_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
419 is_client_sendq_empty(user
, "Not on channel; " MSG
);
420 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
421 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
422 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
423 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
424 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
425 is_client_sendq(":LChanPeon TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
426 is_client_sendq(":LChanPeon TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
430 sendto_channel_flags(local_chan_p
, ALL_MEMBERS
, local_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
431 is_client_sendq_empty(user
, "Not on channel; " MSG
);
432 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
433 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
434 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
435 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
436 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
437 is_client_sendq(":" TEST_ME_ID
"90004 TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
438 is_client_sendq(":" TEST_ME_ID
"90004 TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
443 static void sendto_channel_flags__remote__all_members(void)
447 sendto_channel_flags(server
, ALL_MEMBERS
, remote_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
448 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
449 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
450 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
451 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
452 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
453 is_client_sendq_empty(server
, "Message source; " MSG
);
454 is_client_sendq(":RChanPeon TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
458 sendto_channel_flags(server
, ALL_MEMBERS
, remote_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
459 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
460 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
461 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
462 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
463 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
464 is_client_sendq_empty(server
, "Message source; " MSG
);
465 is_client_sendq(":" TEST_SERVER_ID
"90104 TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
470 static void sendto_channel_flags__local__all_members__tags(void)
474 strcpy(local_chan_p
->user
->suser
, "test");
475 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
476 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
477 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
478 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
480 sendto_channel_flags(local_chan_p
, ALL_MEMBERS
, local_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
481 is_client_sendq_empty(user
, "Not on channel; " MSG
);
482 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
483 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
484 is_client_sendq("@account=test :LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
485 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
486 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
487 is_client_sendq(":LChanPeon TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
488 is_client_sendq(":LChanPeon TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
492 sendto_channel_flags(local_chan_p
, ALL_MEMBERS
, local_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
493 is_client_sendq_empty(user
, "Not on channel; " MSG
);
494 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
495 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
496 is_client_sendq("@account=test :LChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
497 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
498 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
499 is_client_sendq(":" TEST_ME_ID
"90004 TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
500 is_client_sendq(":" TEST_ME_ID
"90004 TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
505 static void sendto_channel_flags__remote__all_members__tags(void)
509 strcpy(remote_chan_p
->user
->suser
, "test");
510 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
511 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
512 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
513 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
515 sendto_channel_flags(server
, ALL_MEMBERS
, remote_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
516 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
517 is_client_sendq("@time=" ADVENTURE_TIME
" :RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
518 is_client_sendq("@account=test :RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
519 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
520 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
521 is_client_sendq_empty(server
, "Message source; " MSG
);
522 is_client_sendq(":RChanPeon TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
526 sendto_channel_flags(server
, ALL_MEMBERS
, remote_chan_p
, channel
, "TEST #placeholder :Hello %s!", "World");
527 is_client_sendq("@time=" ADVENTURE_TIME
";account=test :RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
528 is_client_sendq("@time=" ADVENTURE_TIME
" :RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
529 is_client_sendq("@account=test :RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
530 is_client_sendq(":RChanPeon" TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
531 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
532 is_client_sendq_empty(server
, "Message source; " MSG
);
533 is_client_sendq(":" TEST_SERVER_ID
"90104 TEST #placeholder :Hello World!" CRLF
, server2
, MSG
);
538 static void sendto_channel_flags__local__voice(void)
543 standard_server_caps(0, CAP_CHW
);
545 sendto_channel_flags(user
, CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
546 is_client_sendq_empty(user
, "Not on channel; " MSG
);
547 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
548 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
549 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
550 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
551 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
552 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
553 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
556 standard_server_caps(CAP_CHW
, 0);
558 sendto_channel_flags(user
, CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
559 is_client_sendq_empty(user
, "Not on channel; " MSG
);
560 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
561 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
562 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
563 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
564 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
565 is_client_sendq(":" TEST_NICK
" TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
566 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
571 standard_server_caps(0, CAP_CHW
);
573 sendto_channel_flags(user
, CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
574 is_client_sendq_empty(user
, "Not on channel; " MSG
);
575 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
576 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
577 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
578 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
579 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
580 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
581 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
584 standard_server_caps(CAP_CHW
, 0);
586 sendto_channel_flags(user
, CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
587 is_client_sendq_empty(user
, "Not on channel; " MSG
);
588 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
589 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
590 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
591 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
592 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
593 is_client_sendq(":" TEST_ID
" TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
594 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
599 static void sendto_channel_flags__remote__voice(void)
604 standard_server_caps(0, CAP_CHW
);
606 sendto_channel_flags(server3
, CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
607 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
608 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
609 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
610 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
611 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
612 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
613 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
616 standard_server_caps(CAP_CHW
, 0);
618 sendto_channel_flags(server3
, CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
619 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
620 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
621 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
622 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
623 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
624 is_client_sendq(":" TEST_REMOTE3_NICK
" TEST #placeholder :Hello World!" CRLF
, server
, "On channel; " MSG
);
625 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
630 standard_server_caps(0, CAP_CHW
);
632 sendto_channel_flags(server3
, CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
633 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
634 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
635 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
636 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
637 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
638 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
639 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
642 standard_server_caps(CAP_CHW
, 0);
644 sendto_channel_flags(server3
, CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
645 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
646 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
647 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
648 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
649 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
650 is_client_sendq(":" TEST_REMOTE3_ID
" TEST #placeholder :Hello World!" CRLF
, server
, "On channel; " MSG
);
651 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
656 static void sendto_channel_flags__local__chanop(void)
661 standard_server_caps(0, CAP_CHW
);
663 sendto_channel_flags(user
, CHFL_CHANOP
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
664 is_client_sendq_empty(user
, "Not on channel; " MSG
);
665 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
666 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
667 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
668 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
669 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
670 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
671 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
674 standard_server_caps(CAP_CHW
, 0);
676 sendto_channel_flags(user
, CHFL_CHANOP
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
677 is_client_sendq_empty(user
, "Not on channel; " MSG
);
678 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
679 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
680 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
681 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
682 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
683 is_client_sendq(":" TEST_NICK
" TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
684 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
689 standard_server_caps(0, CAP_CHW
);
691 sendto_channel_flags(user
, CHFL_CHANOP
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
692 is_client_sendq_empty(user
, "Not on channel; " MSG
);
693 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
694 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
695 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
696 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
697 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
698 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
699 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
702 standard_server_caps(CAP_CHW
, 0);
704 sendto_channel_flags(user
, CHFL_CHANOP
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
705 is_client_sendq_empty(user
, "Not on channel; " MSG
);
706 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
707 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
708 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
709 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
710 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
711 is_client_sendq(":" TEST_ID
" TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
712 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
717 static void sendto_channel_flags__remote__chanop(void)
722 standard_server_caps(0, CAP_CHW
);
724 sendto_channel_flags(server3
, CHFL_CHANOP
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
725 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
726 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
727 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
728 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
729 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
730 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
731 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
734 standard_server_caps(CAP_CHW
, 0);
736 sendto_channel_flags(server3
, CHFL_CHANOP
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
737 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
738 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
739 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
740 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
741 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
742 is_client_sendq(":" TEST_REMOTE3_NICK
" TEST #placeholder :Hello World!" CRLF
, server
, "On channel; " MSG
);
743 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
748 standard_server_caps(0, CAP_CHW
);
750 sendto_channel_flags(server3
, CHFL_CHANOP
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
751 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
752 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
753 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
754 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
755 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
756 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
757 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
760 standard_server_caps(CAP_CHW
, 0);
762 sendto_channel_flags(server3
, CHFL_CHANOP
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
763 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
764 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
765 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
766 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
767 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
768 is_client_sendq(":" TEST_REMOTE3_ID
" TEST #placeholder :Hello World!" CRLF
, server
, "On channel; " MSG
);
769 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
774 static void sendto_channel_flags__local__chanop_voice(void)
779 standard_server_caps(0, CAP_CHW
);
781 sendto_channel_flags(user
, CHFL_CHANOP
| CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
782 is_client_sendq_empty(user
, "Not on channel; " MSG
);
783 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
784 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
785 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
786 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
787 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
788 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
789 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
792 standard_server_caps(CAP_CHW
, 0);
794 sendto_channel_flags(user
, CHFL_CHANOP
| CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
795 is_client_sendq_empty(user
, "Not on channel; " MSG
);
796 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
797 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
798 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
799 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
800 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
801 is_client_sendq(":" TEST_NICK
" TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
802 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
807 standard_server_caps(0, CAP_CHW
);
809 sendto_channel_flags(user
, CHFL_CHANOP
| CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
810 is_client_sendq_empty(user
, "Not on channel; " MSG
);
811 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
812 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
813 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
814 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
815 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
816 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
817 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
820 standard_server_caps(CAP_CHW
, 0);
822 sendto_channel_flags(user
, CHFL_CHANOP
| CHFL_VOICE
, user
, channel
, "TEST #placeholder :Hello %s!", "World");
823 is_client_sendq_empty(user
, "Not on channel; " MSG
);
824 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
825 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
826 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
827 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
828 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
829 is_client_sendq(":" TEST_ID
" TEST #placeholder :Hello World!" CRLF
, server
, MSG
);
830 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
835 static void sendto_channel_flags__remote__chanop_voice(void)
840 standard_server_caps(0, CAP_CHW
);
842 sendto_channel_flags(server3
, CHFL_CHANOP
| CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
843 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
844 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
845 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
846 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
847 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
848 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
849 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
852 standard_server_caps(CAP_CHW
, 0);
854 sendto_channel_flags(server3
, CHFL_CHANOP
| CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
855 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
856 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
857 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
858 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
859 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
860 is_client_sendq(":" TEST_REMOTE3_NICK
" TEST #placeholder :Hello World!" CRLF
, server
, "On channel; " MSG
);
861 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
866 standard_server_caps(0, CAP_CHW
);
868 sendto_channel_flags(server3
, CHFL_CHANOP
| CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
869 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
870 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
871 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
872 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
873 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
874 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
875 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
878 standard_server_caps(CAP_CHW
, 0);
880 sendto_channel_flags(server3
, CHFL_CHANOP
| CHFL_VOICE
, remote3
, channel
, "TEST #placeholder :Hello %s!", "World");
881 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
882 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
883 is_client_sendq(":" TEST_REMOTE3_NICK TEST_ID_SUFFIX
" TEST #placeholder :Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
884 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
885 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
886 is_client_sendq(":" TEST_REMOTE3_ID
" TEST #placeholder :Hello World!" CRLF
, server
, "On channel; " MSG
);
887 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
892 static void sendto_channel_opmod__local(void)
896 // This function does not support TS5...
899 // Without CAP_CHW | CAP_EOPMOD
900 standard_server_caps(0, CAP_CHW
| CAP_EOPMOD
);
902 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
903 is_client_sendq_empty(user
, "Not on channel; " MSG
);
904 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
905 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
906 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
907 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
908 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
909 is_client_sendq_empty(server
, "No users to receive message; " MSG
);
910 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
912 // With CAP_CHW, without CAP_EOPMOD
913 standard_server_caps(CAP_CHW
, CAP_EOPMOD
);
915 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
916 is_client_sendq_empty(user
, "Not on channel; " MSG
);
917 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
918 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
919 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
920 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
921 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
922 is_client_sendq(":" TEST_ME_ID
" NOTICE @" TEST_CHANNEL
" :<LChanPeon:#test> Hello World!" CRLF
, server
, MSG
);
923 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
926 channel
->mode
.mode
|= MODE_MODERATED
;
928 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
929 is_client_sendq_empty(user
, "Not on channel; " MSG
);
930 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
931 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
932 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
933 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
934 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
935 is_client_sendq(":" TEST_ME_ID
"90004 TEST " TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
936 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
938 // With CAP_CHW | CAP_EOPMOD
939 channel
->mode
.mode
&= ~MODE_MODERATED
;
940 standard_server_caps(CAP_CHW
| CAP_EOPMOD
, 0);
942 sendto_channel_opmod(local_chan_p
, local_chan_p
, channel
, "TEST", "Hello World!");
943 is_client_sendq_empty(user
, "Not on channel; " MSG
);
944 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
945 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
946 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
947 is_client_sendq_empty(local_chan_p
, "Message source; " MSG
);
948 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
949 is_client_sendq(":" TEST_ME_ID
"90004 TEST =" TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
950 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
953 static void sendto_channel_opmod__remote(void)
957 // This function does not support TS5...
960 // Without CAP_CHW | CAP_EOPMOD
961 standard_server_caps(0, CAP_CHW
| CAP_EOPMOD
);
963 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
964 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
965 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
966 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
967 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
968 is_client_sendq_empty(server
, "Message source; " MSG
);
969 is_client_sendq_empty(server2
, "No users to receive message; " MSG
);
971 // With CAP_CHW, without CAP_EOPMOD
972 standard_server_caps(CAP_CHW
, CAP_EOPMOD
);
974 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
975 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
976 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
977 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
978 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
979 is_client_sendq(":" TEST_SERVER2_ID
" NOTICE @" TEST_CHANNEL
" :<R2ChanDeaf:#test> Hello World!" CRLF
, server
, MSG
);
980 is_client_sendq_empty(server2
, "Message source; " MSG
);
983 channel
->mode
.mode
|= MODE_MODERATED
;
985 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
986 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
987 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
988 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
989 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
990 is_client_sendq(":" TEST_SERVER2_ID
"90205 TEST " TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
991 is_client_sendq_empty(server2
, "Message source; " MSG
);
993 // With CAP_CHW | CAP_EOPMOD
994 channel
->mode
.mode
&= ~MODE_MODERATED
;
995 standard_server_caps(CAP_CHW
| CAP_EOPMOD
, 0);
997 sendto_channel_opmod(server2
, remote2_chan_d
, channel
, "TEST", "Hello World!");
998 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
999 is_client_sendq(":R2ChanDeaf" TEST_ID_SUFFIX
" TEST " TEST_CHANNEL
" :Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1000 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1001 is_client_sendq_empty(local_chan_d
, "Deaf; " MSG
);
1002 is_client_sendq(":" TEST_SERVER2_ID
"90205 TEST =" TEST_CHANNEL
" :Hello World!" CRLF
, server
, MSG
);
1003 is_client_sendq_empty(server2
, "Message source; " MSG
);
1008 static void sendto_channel_local1(void)
1012 sendto_channel_local(user
, ALL_MEMBERS
, channel
, "Hello %s!", "World");
1013 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1014 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1015 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1016 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1017 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1018 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1019 is_client_sendq_empty(server
, MSG
);
1020 is_client_sendq_empty(server2
, MSG
);
1022 sendto_channel_local(user
, CHFL_VOICE
, channel
, "Hello %s!", "World");
1023 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1024 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
1025 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
1026 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
1027 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
1028 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
1029 is_client_sendq_empty(server
, MSG
);
1030 is_client_sendq_empty(server2
, MSG
);
1032 sendto_channel_local(user
, CHFL_CHANOP
, channel
, "Hello %s!", "World");
1033 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1034 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
1035 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
1036 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1037 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1038 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
1039 is_client_sendq_empty(server
, MSG
);
1040 is_client_sendq_empty(server2
, MSG
);
1042 sendto_channel_local(user
, CHFL_CHANOP
| CHFL_VOICE
, channel
, "Hello %s!", "World");
1043 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1044 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1045 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1046 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1047 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1048 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
1049 is_client_sendq_empty(server
, MSG
);
1050 is_client_sendq_empty(server2
, MSG
);
1052 sendto_channel_local(user
, ONLY_OPERS
, channel
, "Hello %s!", "World");
1053 is_client_sendq_empty(user
, "Not an oper; " MSG
);
1054 is_client_sendq_empty(local_chan_o
, "Not an oper; " MSG
);
1055 is_client_sendq_empty(local_chan_ov
, "Not an oper; " MSG
);
1056 is_client_sendq_empty(local_chan_v
, "Not an oper; " MSG
);
1057 is_client_sendq_empty(local_chan_p
, "Not an oper; " MSG
);
1058 is_client_sendq_empty(local_chan_d
, "Not an oper; " MSG
);
1059 is_client_sendq_empty(server
, MSG
);
1060 is_client_sendq_empty(server2
, MSG
);
1062 struct Client
*oper1
= make_local_person_nick("oper1");
1063 struct Client
*oper2
= make_local_person_nick("oper2");
1065 make_local_person_oper(oper1
);
1066 make_local_person_oper(oper2
);
1068 oper2
->umodes
|= UMODE_ADMIN
;
1070 add_user_to_channel(lchannel
, oper1
, CHFL_PEON
);
1071 add_user_to_channel(lchannel
, oper2
, CHFL_PEON
);
1073 sendto_channel_local(user
, ALL_MEMBERS
, lchannel
, "Hello %s!", "World");
1074 is_client_sendq("Hello World!" CRLF
, user
, "On channel; " MSG
);
1075 is_client_sendq("Hello World!" CRLF
, oper1
, "On channel; " MSG
);
1076 is_client_sendq("Hello World!" CRLF
, oper2
, "On channel; " MSG
);
1077 is_client_sendq_empty(server
, MSG
);
1078 is_client_sendq_empty(server2
, MSG
);
1079 is_client_sendq_empty(server3
, MSG
);
1081 sendto_channel_local(user
, ONLY_OPERS
, lchannel
, "Hello %s!", "World");
1082 is_client_sendq_empty(user
, "Not an oper; " MSG
);
1083 is_client_sendq("Hello World!" CRLF
, oper1
, "Is an oper; " MSG
);
1084 is_client_sendq("Hello World!" CRLF
, oper2
, "Is an oper; " MSG
);
1085 is_client_sendq_empty(server
, MSG
);
1086 is_client_sendq_empty(server2
, MSG
);
1087 is_client_sendq_empty(server3
, MSG
);
1092 static void sendto_channel_local_with_capability1(void)
1096 local_chan_o
->localClient
->caps
|= CAP_INVITE_NOTIFY
;
1097 local_chan_v
->localClient
->caps
|= CAP_INVITE_NOTIFY
;
1099 sendto_channel_local_with_capability(user
, ALL_MEMBERS
, CAP_INVITE_NOTIFY
, 0, channel
, "Hello %s!", "World");
1100 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1101 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1102 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1103 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1104 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
1105 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1106 is_client_sendq_empty(server
, MSG
);
1107 is_client_sendq_empty(server2
, MSG
);
1109 sendto_channel_local_with_capability(user
, ALL_MEMBERS
, 0, CAP_INVITE_NOTIFY
, channel
, "Hello %s!", "World");
1110 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1111 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
1112 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1113 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
1114 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1115 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1116 is_client_sendq_empty(server
, MSG
);
1117 is_client_sendq_empty(server2
, MSG
);
1119 sendto_channel_local_with_capability(user
, ALL_MEMBERS
, 0, 0, channel
, "Hello %s!", "World");
1120 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1121 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1122 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1123 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1124 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1125 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1126 is_client_sendq_empty(server
, MSG
);
1127 is_client_sendq_empty(server2
, MSG
);
1129 sendto_channel_local_with_capability(user
, CHFL_VOICE
, CAP_INVITE_NOTIFY
, 0, channel
, "Hello %s!", "World");
1130 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1131 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
1132 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1133 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
1134 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
1135 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1136 is_client_sendq_empty(server
, MSG
);
1137 is_client_sendq_empty(server2
, MSG
);
1139 sendto_channel_local_with_capability(user
, CHFL_VOICE
, 0, CAP_INVITE_NOTIFY
, channel
, "Hello %s!", "World");
1140 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1141 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
1142 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
1143 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
1144 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
1145 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
1146 is_client_sendq_empty(server
, MSG
);
1147 is_client_sendq_empty(server2
, MSG
);
1149 sendto_channel_local_with_capability(user
, CHFL_VOICE
, 0, 0, channel
, "Hello %s!", "World");
1150 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1151 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
1152 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
1153 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
1154 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
1155 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
1156 is_client_sendq_empty(server
, MSG
);
1157 is_client_sendq_empty(server2
, MSG
);
1159 sendto_channel_local_with_capability(user
, CHFL_CHANOP
, CAP_INVITE_NOTIFY
, 0, channel
, "Hello %s!", "World");
1160 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1161 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
1162 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1163 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1164 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1165 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1166 is_client_sendq_empty(server
, MSG
);
1167 is_client_sendq_empty(server2
, MSG
);
1169 sendto_channel_local_with_capability(user
, CHFL_CHANOP
, 0, CAP_INVITE_NOTIFY
, channel
, "Hello %s!", "World");
1170 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1171 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
1172 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
1173 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1174 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1175 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
1176 is_client_sendq_empty(server
, MSG
);
1177 is_client_sendq_empty(server2
, MSG
);
1179 sendto_channel_local_with_capability(user
, CHFL_CHANOP
, 0, 0, channel
, "Hello %s!", "World");
1180 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1181 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
1182 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
1183 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1184 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1185 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
1186 is_client_sendq_empty(server
, MSG
);
1187 is_client_sendq_empty(server2
, MSG
);
1189 sendto_channel_local_with_capability(user
, CHFL_CHANOP
| CHFL_VOICE
, CAP_INVITE_NOTIFY
, 0, channel
, "Hello %s!", "World");
1190 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1191 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1192 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1193 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1194 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1195 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1196 is_client_sendq_empty(server
, MSG
);
1197 is_client_sendq_empty(server2
, MSG
);
1199 sendto_channel_local_with_capability(user
, CHFL_CHANOP
| CHFL_VOICE
, 0, CAP_INVITE_NOTIFY
, channel
, "Hello %s!", "World");
1200 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1201 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
1202 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1203 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
1204 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1205 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
1206 is_client_sendq_empty(server
, MSG
);
1207 is_client_sendq_empty(server2
, MSG
);
1209 sendto_channel_local_with_capability(user
, CHFL_CHANOP
| CHFL_VOICE
, 0, 0, channel
, "Hello %s!", "World");
1210 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1211 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1212 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1213 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1214 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1215 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
1216 is_client_sendq_empty(server
, MSG
);
1217 is_client_sendq_empty(server2
, MSG
);
1222 static void sendto_channel_local_with_capability_butone1(void)
1226 local_chan_o
->localClient
->caps
|= CAP_INVITE_NOTIFY
;
1227 local_chan_v
->localClient
->caps
|= CAP_INVITE_NOTIFY
;
1229 sendto_channel_local_with_capability_butone(NULL
, ALL_MEMBERS
, CAP_INVITE_NOTIFY
, 0, channel
, "Hello %s!", "World");
1230 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1231 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1232 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1233 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1234 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
1235 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1236 is_client_sendq_empty(server
, MSG
);
1237 is_client_sendq_empty(server2
, MSG
);
1239 sendto_channel_local_with_capability_butone(NULL
, ALL_MEMBERS
, 0, CAP_INVITE_NOTIFY
, channel
, "Hello %s!", "World");
1240 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1241 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
1242 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1243 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
1244 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1245 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1246 is_client_sendq_empty(server
, MSG
);
1247 is_client_sendq_empty(server2
, MSG
);
1249 sendto_channel_local_with_capability_butone(NULL
, ALL_MEMBERS
, 0, 0, channel
, "Hello %s!", "World");
1250 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1251 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1252 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1253 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1254 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1255 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1256 is_client_sendq_empty(server
, MSG
);
1257 is_client_sendq_empty(server2
, MSG
);
1259 sendto_channel_local_with_capability_butone(local_chan_o
, ALL_MEMBERS
, CAP_INVITE_NOTIFY
, 0, channel
, "Hello %s!", "World");
1260 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1261 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
1262 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1263 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1264 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
1265 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1266 is_client_sendq_empty(server
, MSG
);
1267 is_client_sendq_empty(server2
, MSG
);
1269 sendto_channel_local_with_capability_butone(local_chan_o
, ALL_MEMBERS
, 0, CAP_INVITE_NOTIFY
, channel
, "Hello %s!", "World");
1270 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1271 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
1272 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1273 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
1274 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1275 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1276 is_client_sendq_empty(server
, MSG
);
1277 is_client_sendq_empty(server2
, MSG
);
1279 sendto_channel_local_with_capability_butone(local_chan_o
, ALL_MEMBERS
, 0, 0, channel
, "Hello %s!", "World");
1280 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1281 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
1282 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1283 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1284 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1285 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1286 is_client_sendq_empty(server
, MSG
);
1287 is_client_sendq_empty(server2
, MSG
);
1289 sendto_channel_local_with_capability_butone(local_chan_p
, ALL_MEMBERS
, CAP_INVITE_NOTIFY
, 0, channel
, "Hello %s!", "World");
1290 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1291 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1292 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1293 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1294 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
1295 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1296 is_client_sendq_empty(server
, MSG
);
1297 is_client_sendq_empty(server2
, MSG
);
1299 sendto_channel_local_with_capability_butone(local_chan_p
, ALL_MEMBERS
, 0, CAP_INVITE_NOTIFY
, channel
, "Hello %s!", "World");
1300 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1301 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
1302 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1303 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
1304 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
1305 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1306 is_client_sendq_empty(server
, MSG
);
1307 is_client_sendq_empty(server2
, MSG
);
1309 sendto_channel_local_with_capability_butone(local_chan_p
, ALL_MEMBERS
, 0, 0, channel
, "Hello %s!", "World");
1310 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1311 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1312 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1313 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1314 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
1315 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1316 is_client_sendq_empty(server
, MSG
);
1317 is_client_sendq_empty(server2
, MSG
);
1322 static void sendto_channel_local_butone1(void)
1326 sendto_channel_local_butone(NULL
, ALL_MEMBERS
, channel
, "Hello %s!", "World");
1327 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1328 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1329 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1330 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1331 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1332 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1333 is_client_sendq_empty(server
, MSG
);
1334 is_client_sendq_empty(server2
, MSG
);
1336 sendto_channel_local_butone(local_chan_o
, ALL_MEMBERS
, channel
, "Hello %s!", "World");
1337 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1338 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
1339 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1340 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1341 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On channel; " MSG
);
1342 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1343 is_client_sendq_empty(server
, MSG
);
1344 is_client_sendq_empty(server2
, MSG
);
1346 sendto_channel_local_butone(local_chan_p
, ALL_MEMBERS
, channel
, "Hello %s!", "World");
1347 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1348 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "On channel; " MSG
);
1349 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On channel; " MSG
);
1350 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On channel; " MSG
);
1351 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
1352 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On channel; " MSG
);
1353 is_client_sendq_empty(server
, MSG
);
1354 is_client_sendq_empty(server2
, MSG
);
1356 sendto_channel_local_butone(local_chan_ov
, CHFL_VOICE
, channel
, "Hello %s!", "World");
1357 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1358 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
1359 is_client_sendq_empty(local_chan_ov
, "Is the one (neo); " MSG
);
1360 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
1361 is_client_sendq_empty(local_chan_p
, "Not +v; " MSG
);
1362 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
1363 is_client_sendq_empty(server
, MSG
);
1364 is_client_sendq_empty(server2
, MSG
);
1366 sendto_channel_local_butone(local_chan_p
, CHFL_VOICE
, channel
, "Hello %s!", "World");
1367 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1368 is_client_sendq_empty(local_chan_o
, "Not +v; " MSG
);
1369 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +v; " MSG
);
1370 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +v; " MSG
);
1371 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
1372 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +v; " MSG
);
1373 is_client_sendq_empty(server
, MSG
);
1374 is_client_sendq_empty(server2
, MSG
);
1376 sendto_channel_local_butone(local_chan_o
, CHFL_CHANOP
, channel
, "Hello %s!", "World");
1377 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1378 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
1379 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
1380 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1381 is_client_sendq_empty(local_chan_p
, "Not +o; " MSG
);
1382 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
1383 is_client_sendq_empty(server
, MSG
);
1384 is_client_sendq_empty(server2
, MSG
);
1386 sendto_channel_local_butone(local_chan_p
, CHFL_CHANOP
, channel
, "Hello %s!", "World");
1387 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1388 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o; " MSG
);
1389 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o; " MSG
);
1390 is_client_sendq_empty(local_chan_v
, "Not +o; " MSG
);
1391 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
1392 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o; " MSG
);
1393 is_client_sendq_empty(server
, MSG
);
1394 is_client_sendq_empty(server2
, MSG
);
1396 sendto_channel_local_butone(local_chan_v
, CHFL_CHANOP
| CHFL_VOICE
, channel
, "Hello %s!", "World");
1397 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1398 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1399 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1400 is_client_sendq_empty(local_chan_v
, "Is the one (neo); " MSG
);
1401 is_client_sendq_empty(local_chan_p
, "Not +o/+v; " MSG
);
1402 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
1403 is_client_sendq_empty(server
, MSG
);
1404 is_client_sendq_empty(server2
, MSG
);
1406 sendto_channel_local_butone(local_chan_p
, CHFL_CHANOP
| CHFL_VOICE
, channel
, "Hello %s!", "World");
1407 is_client_sendq_empty(user
, "Not on channel; " MSG
);
1408 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has +o/+v; " MSG
);
1409 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Has +o/+v; " MSG
);
1410 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has +o/+v; " MSG
);
1411 is_client_sendq_empty(local_chan_p
, "Is the one (neo); " MSG
);
1412 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Has +o/+v; " MSG
);
1413 is_client_sendq_empty(server
, MSG
);
1414 is_client_sendq_empty(server2
, MSG
);
1419 static void sendto_common_channels_local1(void)
1423 local_chan_o
->localClient
->caps
|= CAP_INVITE_NOTIFY
;
1424 local_chan_v
->localClient
->caps
|= CAP_INVITE_NOTIFY
;
1426 sendto_common_channels_local(local_chan_o
, CAP_INVITE_NOTIFY
, 0, "Hello %s!", "World");
1427 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1428 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has cap; " MSG
);
1429 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1430 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has cap; " MSG
);
1431 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
1432 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1433 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
1434 is_client_sendq_empty(server
, MSG
);
1435 is_client_sendq_empty(server2
, MSG
);
1437 sendto_common_channels_local(local_chan_o
, 0, CAP_INVITE_NOTIFY
, "Hello %s!", "World");
1438 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1439 is_client_sendq_empty(local_chan_o
, "Has cap; " MSG
);
1440 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Doesn't have cap; " MSG
);
1441 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
1442 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "Doesn't have cap; " MSG
);
1443 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Doesn't have cap; " MSG
);
1444 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
1445 is_client_sendq_empty(server
, MSG
);
1446 is_client_sendq_empty(server2
, MSG
);
1448 sendto_common_channels_local(local_chan_o
, 0, 0, "Hello %s!", "World");
1449 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1450 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "No cap checking; " MSG
);
1451 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On common channel; " MSG
);
1452 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On common channel; " MSG
);
1453 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On common channel; " MSG
);
1454 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On common channel; " MSG
);
1455 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
1456 is_client_sendq_empty(server
, MSG
);
1457 is_client_sendq_empty(server2
, MSG
);
1459 sendto_common_channels_local(local_no_chan
, CAP_INVITE_NOTIFY
, 0, "Hello %s!", "World");
1460 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1461 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
1462 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
1463 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
1464 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
1465 is_client_sendq_empty(local_no_chan
, "Doesn't have cap; " MSG
);
1466 is_client_sendq_empty(server
, MSG
);
1467 is_client_sendq_empty(server2
, MSG
);
1469 sendto_common_channels_local(local_no_chan
, 0, CAP_INVITE_NOTIFY
, "Hello %s!", "World");
1470 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1471 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
1472 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
1473 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
1474 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
1475 is_client_sendq("Hello World!" CRLF
, local_no_chan
, "Doesn't have cap; " MSG
);
1476 is_client_sendq_empty(server
, MSG
);
1477 is_client_sendq_empty(server2
, MSG
);
1479 sendto_common_channels_local(local_no_chan
, 0, 0, "Hello %s!", "World");
1480 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1481 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
1482 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
1483 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
1484 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
1485 is_client_sendq("Hello World!" CRLF
, local_no_chan
, "No cap checking; " MSG
);
1486 is_client_sendq_empty(server
, MSG
);
1487 is_client_sendq_empty(server2
, MSG
);
1489 local_no_chan
->localClient
->caps
|= CAP_INVITE_NOTIFY
;
1491 sendto_common_channels_local(local_no_chan
, CAP_INVITE_NOTIFY
, 0, "Hello %s!", "World");
1492 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1493 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
1494 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
1495 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
1496 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
1497 is_client_sendq("Hello World!" CRLF
, local_no_chan
, "Has cap; " MSG
);
1498 is_client_sendq_empty(server
, MSG
);
1499 is_client_sendq_empty(server2
, MSG
);
1501 sendto_common_channels_local(local_no_chan
, 0, CAP_INVITE_NOTIFY
, "Hello %s!", "World");
1502 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1503 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
1504 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
1505 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
1506 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
1507 is_client_sendq_empty(local_no_chan
, "Has cap; " MSG
);
1508 is_client_sendq_empty(server
, MSG
);
1509 is_client_sendq_empty(server2
, MSG
);
1511 sendto_common_channels_local(local_no_chan
, 0, 0, "Hello %s!", "World");
1512 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1513 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
1514 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
1515 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
1516 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
1517 is_client_sendq("Hello World!" CRLF
, local_no_chan
, "No cap checking; " MSG
);
1518 is_client_sendq_empty(server
, MSG
);
1519 is_client_sendq_empty(server2
, MSG
);
1524 static void sendto_common_channels_local_butone1(void)
1528 local_chan_o
->localClient
->caps
|= CAP_INVITE_NOTIFY
;
1529 local_chan_v
->localClient
->caps
|= CAP_INVITE_NOTIFY
;
1531 sendto_common_channels_local_butone(local_chan_o
, CAP_INVITE_NOTIFY
, 0, "Hello %s!", "World");
1532 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1533 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
1534 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1535 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has cap; " MSG
);
1536 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
1537 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1538 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
1539 is_client_sendq_empty(server
, MSG
);
1540 is_client_sendq_empty(server2
, MSG
);
1542 sendto_common_channels_local_butone(local_chan_o
, 0, CAP_INVITE_NOTIFY
, "Hello %s!", "World");
1543 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1544 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
1545 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "Doesn't have cap; " MSG
);
1546 is_client_sendq_empty(local_chan_v
, "Has cap; " MSG
);
1547 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "Doesn't have cap; " MSG
);
1548 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "Doesn't have cap; " MSG
);
1549 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
1550 is_client_sendq_empty(server
, MSG
);
1551 is_client_sendq_empty(server2
, MSG
);
1553 sendto_common_channels_local_butone(local_chan_o
, 0, 0, "Hello %s!", "World");
1554 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1555 is_client_sendq_empty(local_chan_o
, "Is the one (neo); " MSG
);
1556 is_client_sendq("Hello World!" CRLF
, local_chan_ov
, "On common channel; " MSG
);
1557 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "On common channel; " MSG
);
1558 is_client_sendq("Hello World!" CRLF
, local_chan_p
, "On common channel; " MSG
);
1559 is_client_sendq("Hello World!" CRLF
, local_chan_d
, "On common channel; " MSG
);
1560 is_client_sendq_empty(local_no_chan
, "Not on common channel; " MSG
);
1561 is_client_sendq_empty(server
, MSG
);
1562 is_client_sendq_empty(server2
, MSG
);
1564 sendto_common_channels_local_butone(local_no_chan
, CAP_INVITE_NOTIFY
, 0, "Hello %s!", "World");
1565 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1566 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
1567 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
1568 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
1569 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
1570 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
1571 is_client_sendq_empty(server
, MSG
);
1572 is_client_sendq_empty(server2
, MSG
);
1574 sendto_common_channels_local_butone(local_no_chan
, 0, CAP_INVITE_NOTIFY
, "Hello %s!", "World");
1575 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1576 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
1577 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
1578 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
1579 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
1580 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
1581 is_client_sendq_empty(server
, MSG
);
1582 is_client_sendq_empty(server2
, MSG
);
1584 sendto_common_channels_local_butone(local_no_chan
, 0, 0, "Hello %s!", "World");
1585 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1586 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
1587 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
1588 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
1589 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
1590 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
1591 is_client_sendq_empty(server
, MSG
);
1592 is_client_sendq_empty(server2
, MSG
);
1594 local_no_chan
->localClient
->caps
|= CAP_INVITE_NOTIFY
;
1596 sendto_common_channels_local_butone(local_no_chan
, CAP_INVITE_NOTIFY
, 0, "Hello %s!", "World");
1597 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1598 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
1599 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
1600 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
1601 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
1602 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
1603 is_client_sendq_empty(server
, MSG
);
1604 is_client_sendq_empty(server2
, MSG
);
1606 sendto_common_channels_local_butone(local_no_chan
, 0, CAP_INVITE_NOTIFY
, "Hello %s!", "World");
1607 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1608 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
1609 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
1610 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
1611 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
1612 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
1613 is_client_sendq_empty(server
, MSG
);
1614 is_client_sendq_empty(server2
, MSG
);
1616 sendto_common_channels_local_butone(local_no_chan
, 0, 0, "Hello %s!", "World");
1617 is_client_sendq_empty(user
, "Not on common channel; " MSG
);
1618 is_client_sendq_empty(local_chan_o
, "Not on common channel; " MSG
);
1619 is_client_sendq_empty(local_chan_ov
, "Not on common channel; " MSG
);
1620 is_client_sendq_empty(local_chan_p
, "Not on common channel; " MSG
);
1621 is_client_sendq_empty(local_chan_d
, "Not on common channel; " MSG
);
1622 is_client_sendq_empty(local_no_chan
, "Is the one (neo); " MSG
);
1623 is_client_sendq_empty(server
, MSG
);
1624 is_client_sendq_empty(server2
, MSG
);
1629 static void sendto_match_butone__host(void)
1633 // This function does not support TS5...
1637 sendto_match_butone(NULL
, user
, "*.test", MATCH_HOST
, "TEST Hello %s!", "World");
1638 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Host matches; " MSG
);
1639 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Host matches; " MSG
);
1640 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Host matches; " MSG
);
1641 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Host matches; " MSG
);
1642 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Host matches; " MSG
);
1643 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Host matches; " MSG
);
1644 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
1645 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1646 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1648 sendto_match_butone(NULL
, user
, "*.invalid", MATCH_HOST
, "TEST Hello %s!", "World");
1649 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
1650 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
1651 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
1652 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
1653 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
1654 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
1655 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
1656 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1657 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1659 sendto_match_butone(server
, user
, "*.test", MATCH_HOST
, "TEST Hello %s!", "World");
1660 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Host matches; " MSG
);
1661 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Host matches; " MSG
);
1662 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Host matches; " MSG
);
1663 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Host matches; " MSG
);
1664 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Host matches; " MSG
);
1665 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Host matches; " MSG
);
1666 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
1667 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1668 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1670 sendto_match_butone(server
, user
, "*.invalid", MATCH_HOST
, "TEST Hello %s!", "World");
1671 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
1672 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
1673 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
1674 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
1675 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
1676 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
1677 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
1678 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1679 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1682 sendto_match_butone(NULL
, remote
, "*.test", MATCH_HOST
, "TEST Hello %s!", "World");
1683 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Host matches; " MSG
);
1684 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Host matches; " MSG
);
1685 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Host matches; " MSG
);
1686 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Host matches; " MSG
);
1687 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Host matches; " MSG
);
1688 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Host matches; " MSG
);
1689 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
1690 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1691 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1693 sendto_match_butone(NULL
, remote
, "*.invalid", MATCH_HOST
, "TEST Hello %s!", "World");
1694 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
1695 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
1696 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
1697 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
1698 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
1699 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
1700 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
1701 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1702 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1704 sendto_match_butone(server
, remote
, "*.test", MATCH_HOST
, "TEST Hello %s!", "World");
1705 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Host matches; " MSG
);
1706 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Host matches; " MSG
);
1707 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Host matches; " MSG
);
1708 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Host matches; " MSG
);
1709 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Host matches; " MSG
);
1710 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Host matches; " MSG
);
1711 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
1712 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1713 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1715 sendto_match_butone(server
, remote
, "*.invalid", MATCH_HOST
, "TEST Hello %s!", "World");
1716 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
1717 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
1718 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
1719 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
1720 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
1721 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
1722 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
1723 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1724 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1729 static void sendto_match_butone__server(void)
1733 // This function does not support TS5...
1737 sendto_match_butone(NULL
, user
, "me.*", MATCH_SERVER
, "TEST Hello %s!", "World");
1738 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Server matches; " MSG
);
1739 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Server matches; " MSG
);
1740 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Server matches; " MSG
);
1741 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Server matches; " MSG
);
1742 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Server matches; " MSG
);
1743 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Server matches; " MSG
);
1744 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
1745 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1746 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1748 sendto_match_butone(NULL
, user
, "example.*", MATCH_SERVER
, "TEST Hello %s!", "World");
1749 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
1750 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
1751 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
1752 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
1753 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
1754 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
1755 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
1756 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1757 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1759 sendto_match_butone(server
, user
, "me.*", MATCH_SERVER
, "TEST Hello %s!", "World");
1760 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Server matches; " MSG
);
1761 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Server matches; " MSG
);
1762 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Server matches; " MSG
);
1763 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Server matches; " MSG
);
1764 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Server matches; " MSG
);
1765 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Server matches; " MSG
);
1766 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
1767 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1768 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1770 sendto_match_butone(server
, user
, "example.*", MATCH_SERVER
, "TEST Hello %s!", "World");
1771 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
1772 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
1773 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
1774 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
1775 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
1776 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
1777 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
1778 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1779 is_client_sendq(":" TEST_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1782 sendto_match_butone(NULL
, remote
, "me.*", MATCH_SERVER
, "TEST Hello %s!", "World");
1783 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Server matches; " MSG
);
1784 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Server matches; " MSG
);
1785 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Server matches; " MSG
);
1786 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Server matches; " MSG
);
1787 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Server matches; " MSG
);
1788 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Server matches; " MSG
);
1789 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
1790 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1791 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1793 sendto_match_butone(NULL
, remote
, "example.*", MATCH_SERVER
, "TEST Hello %s!", "World");
1794 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
1795 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
1796 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
1797 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
1798 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
1799 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
1800 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server
, "Is a server; " MSG
);
1801 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1802 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1804 sendto_match_butone(server
, remote
, "me.*", MATCH_SERVER
, "TEST Hello %s!", "World");
1805 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, user
, "Server matches; " MSG
);
1806 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_o
, "Server matches; " MSG
);
1807 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_ov
, "Server matches; " MSG
);
1808 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_v
, "Server matches; " MSG
);
1809 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_p
, "Server matches; " MSG
);
1810 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST Hello World!" CRLF
, local_chan_d
, "Server matches; " MSG
);
1811 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
1812 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1813 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1815 sendto_match_butone(server
, remote
, "example.*", MATCH_SERVER
, "TEST Hello %s!", "World");
1816 is_client_sendq_empty(user
, "Host doesn't match; " MSG
);
1817 is_client_sendq_empty(local_chan_o
, "Host doesn't match; " MSG
);
1818 is_client_sendq_empty(local_chan_ov
, "Host doesn't match; " MSG
);
1819 is_client_sendq_empty(local_chan_v
, "Host doesn't match; " MSG
);
1820 is_client_sendq_empty(local_chan_p
, "Host doesn't match; " MSG
);
1821 is_client_sendq_empty(local_chan_d
, "Host doesn't match; " MSG
);
1822 is_client_sendq_empty(server
, "Is the one (neo); " MSG
);
1823 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server2
, "Is a server; " MSG
);
1824 is_client_sendq(":" TEST_REMOTE_ID
" TEST Hello World!" CRLF
, server3
, "Is a server; " MSG
);
1829 static void sendto_local_clients_with_capability1(void)
1833 local_chan_o
->localClient
->caps
|= CAP_INVITE_NOTIFY
;
1834 local_chan_v
->localClient
->caps
|= CAP_INVITE_NOTIFY
;
1836 sendto_local_clients_with_capability(CAP_INVITE_NOTIFY
, "Hello %s!", "World");
1837 is_client_sendq_empty(user
, "Doesn't have cap; " MSG
);
1838 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Has cap; " MSG
);
1839 is_client_sendq_empty(local_chan_ov
, "Doesn't have cap; " MSG
);
1840 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Has cap; " MSG
);
1841 is_client_sendq_empty(local_chan_p
, "Doesn't have cap; " MSG
);
1842 is_client_sendq_empty(local_chan_d
, "Doesn't have cap; " MSG
);
1843 is_client_sendq_empty(server
, MSG
);
1844 is_client_sendq_empty(server2
, MSG
);
1849 static void sendto_monitor1(void)
1851 struct monitor
*monptr
;
1855 monptr
= find_monitor(TEST_NICK
, 1);
1856 rb_dlinkAddAlloc(local_chan_o
, &monptr
->users
);
1857 rb_dlinkAddAlloc(monptr
, &local_chan_o
->localClient
->monitor_list
);
1858 rb_dlinkAddAlloc(local_chan_v
, &monptr
->users
);
1859 rb_dlinkAddAlloc(monptr
, &local_chan_v
->localClient
->monitor_list
);
1861 sendto_monitor(user
, monptr
, "Hello %s!", "World");
1862 is_client_sendq_empty(user
, "Not monitoring; " MSG
);
1863 is_client_sendq("Hello World!" CRLF
, local_chan_o
, "Monitoring; " MSG
);
1864 is_client_sendq_empty(local_chan_ov
, "Not monitoring; " MSG
);
1865 is_client_sendq("Hello World!" CRLF
, local_chan_v
, "Monitoring; " MSG
);
1866 is_client_sendq_empty(local_chan_p
, "Not monitoring; " MSG
);
1867 is_client_sendq_empty(local_chan_d
, "Not monitoring; " MSG
);
1868 is_client_sendq_empty(server
, MSG
);
1869 is_client_sendq_empty(server2
, MSG
);
1874 static void sendto_anywhere1(void)
1878 // This function does not support TS5...
1882 sendto_anywhere(user
, remote
, "TEST", "Hello %s!", "World");
1883 is_client_sendq(":" TEST_REMOTE_NICK TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
1884 is_client_sendq_empty(server
, MSG
);
1886 sendto_anywhere(user
, local_chan_o
, "TEST", "Hello %s!", "World");
1887 is_client_sendq(":LChanOp" TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
1888 is_client_sendq_empty(local_chan_o
, MSG
);
1889 is_client_sendq_empty(server
, MSG
);
1891 sendto_anywhere(user
, server
, "TEST", "Hello %s!", "World");
1892 is_client_sendq(":" TEST_SERVER_NAME
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
1893 is_client_sendq_empty(server
, MSG
);
1895 sendto_anywhere(user
, &me
, "TEST", "Hello %s!", "World");
1896 is_client_sendq(":" TEST_ME_NAME
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
1897 is_client_sendq_empty(server
, MSG
);
1900 sendto_anywhere(remote
, user
, "TEST", "Hello %s!", "World");
1901 is_client_sendq_empty(user
, MSG
);
1902 is_client_sendq(":" TEST_ID
" TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
1904 sendto_anywhere(remote
, local_chan_o
, "TEST", "Hello %s!", "World");
1905 is_client_sendq_empty(local_chan_o
, MSG
);
1906 is_client_sendq(":" TEST_ME_ID
"90001 TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
1908 sendto_anywhere(remote
, server2
, "TEST", "Hello %s!", "World");
1909 is_client_sendq(":" TEST_SERVER2_ID
" TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
1910 is_client_sendq_empty(server2
, MSG
);
1912 sendto_anywhere(remote
, &me
, "TEST", "Hello %s!", "World");
1913 is_client_sendq(":" TEST_ME_ID
" TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
1914 is_client_sendq_empty(server2
, MSG
);
1919 static void sendto_anywhere1__tags(void)
1923 strcpy(user
->user
->suser
, "test");
1924 strcpy(local_chan_o
->user
->suser
, "test_o");
1925 strcpy(local_chan_ov
->user
->suser
, "test_ov");
1926 strcpy(local_chan_v
->user
->suser
, "test_v");
1927 strcpy(local_chan_p
->user
->suser
, "test_p");
1928 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
1929 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
1930 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
1931 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
1933 // This function does not support TS5...
1937 sendto_anywhere(user
, local_chan_p
, "TEST", "Hello %s!", "World");
1938 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
1939 is_client_sendq_empty(local_chan_p
, MSG
);
1940 is_client_sendq_empty(server
, MSG
);
1942 sendto_anywhere(local_chan_o
, local_chan_p
, "TEST", "Hello %s!", "World");
1943 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_p :LChanPeon" TEST_ID_SUFFIX
" TEST LChanOp Hello World!" CRLF
, local_chan_o
, MSG
);
1944 is_client_sendq_empty(local_chan_p
, MSG
);
1945 is_client_sendq_empty(server
, MSG
);
1947 sendto_anywhere(local_chan_ov
, local_chan_p
, "TEST", "Hello %s!", "World");
1948 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanPeon" TEST_ID_SUFFIX
" TEST LChanOpVoice Hello World!" CRLF
, local_chan_ov
, MSG
);
1949 is_client_sendq_empty(local_chan_p
, MSG
);
1950 is_client_sendq_empty(server
, MSG
);
1952 sendto_anywhere(local_chan_v
, local_chan_p
, "TEST", "Hello %s!", "World");
1953 is_client_sendq("@account=test_p :LChanPeon" TEST_ID_SUFFIX
" TEST LChanVoice Hello World!" CRLF
, local_chan_v
, MSG
);
1954 is_client_sendq_empty(local_chan_p
, MSG
);
1955 is_client_sendq_empty(server
, MSG
);
1957 sendto_anywhere(user
, server
, "TEST", "Hello %s!", "World");
1958 is_client_sendq(":" TEST_SERVER_NAME
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
1959 is_client_sendq_empty(server
, MSG
);
1961 sendto_anywhere(user
, &me
, "TEST", "Hello %s!", "World");
1962 is_client_sendq(":" TEST_ME_NAME
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
1963 is_client_sendq_empty(server
, MSG
);
1965 sendto_anywhere(local_chan_o
, server
, "TEST", "Hello %s!", "World");
1966 is_client_sendq(":" TEST_SERVER_NAME
" TEST LChanOp Hello World!" CRLF
, local_chan_o
, MSG
);
1967 is_client_sendq_empty(server
, MSG
);
1969 sendto_anywhere(local_chan_v
, &me
, "TEST", "Hello %s!", "World");
1970 is_client_sendq(":" TEST_ME_NAME
" TEST LChanVoice Hello World!" CRLF
, local_chan_v
, MSG
);
1971 is_client_sendq_empty(server
, MSG
);
1974 sendto_anywhere(remote
, user
, "TEST", "Hello %s!", "World");
1975 is_client_sendq_empty(user
, MSG
);
1976 is_client_sendq(":" TEST_ID
" TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
1978 sendto_anywhere(remote
, local_chan_o
, "TEST", "Hello %s!", "World");
1979 is_client_sendq_empty(local_chan_o
, MSG
);
1980 is_client_sendq(":" TEST_ME_ID
"90001 TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
1982 sendto_anywhere(remote
, local_chan_ov
, "TEST", "Hello %s!", "World");
1983 is_client_sendq_empty(local_chan_ov
, MSG
);
1984 is_client_sendq(":" TEST_ME_ID
"90002 TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
1986 sendto_anywhere(remote
, local_chan_v
, "TEST", "Hello %s!", "World");
1987 is_client_sendq_empty(local_chan_v
, MSG
);
1988 is_client_sendq(":" TEST_ME_ID
"90003 TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
1990 sendto_anywhere(remote
, server2
, "TEST", "Hello %s!", "World");
1991 is_client_sendq(":" TEST_SERVER2_ID
" TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
1992 is_client_sendq_empty(server2
, MSG
);
1994 sendto_anywhere(remote
, &me
, "TEST", "Hello %s!", "World");
1995 is_client_sendq(":" TEST_ME_ID
" TEST " TEST_REMOTE_ID
" Hello World!" CRLF
, server
, MSG
);
1996 is_client_sendq_empty(server2
, MSG
);
2001 static void sendto_anywhere_echo1(void)
2006 sendto_anywhere_echo(user
, user
, "TEST", "Hello %s!", "World");
2007 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, user
, MSG
);
2008 is_client_sendq_empty(server
, MSG
);
2010 sendto_anywhere_echo(user
, local_chan_o
, "TEST", "Hello %s!", "World");
2011 is_client_sendq_empty(user
, MSG
);
2012 is_client_sendq(":LChanOp" TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, local_chan_o
, MSG
);
2013 is_client_sendq_empty(server
, MSG
);
2015 sendto_anywhere_echo(&me
, user
, "TEST", "Hello %s!", "World");
2016 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST " TEST_ME_NAME
" Hello World!" CRLF
, user
, MSG
);
2017 is_client_sendq_empty(server
, MSG
);
2020 sendto_anywhere_echo(remote
, user
, "TEST", "Hello %s!", "World");
2021 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST " TEST_REMOTE_NICK
" Hello World!" CRLF
, user
, MSG
);
2022 is_client_sendq_empty(server
, MSG
);
2024 sendto_anywhere_echo(server
, user
, "TEST", "Hello %s!", "World");
2025 is_client_sendq(":" TEST_NICK TEST_ID_SUFFIX
" TEST " TEST_SERVER_NAME
" Hello World!" CRLF
, user
, MSG
);
2026 is_client_sendq_empty(server
, MSG
);
2031 static void sendto_anywhere_echo1__tags(void)
2035 strcpy(user
->user
->suser
, "test");
2036 strcpy(local_chan_o
->user
->suser
, "test_o");
2037 strcpy(local_chan_ov
->user
->suser
, "test_ov");
2038 strcpy(local_chan_v
->user
->suser
, "test_v");
2039 strcpy(local_chan_p
->user
->suser
, "test_p");
2040 local_chan_o
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
2041 local_chan_o
->localClient
->caps
|= CAP_SERVER_TIME
;
2042 local_chan_ov
->localClient
->caps
|= CAP_SERVER_TIME
;
2043 local_chan_v
->localClient
->caps
|= CAP_ACCOUNT_TAG
;
2045 sendto_anywhere_echo(local_chan_o
, local_chan_o
, "TEST", "Hello %s!", "World");
2046 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_o :LChanOp" TEST_ID_SUFFIX
" TEST LChanOp Hello World!" CRLF
, local_chan_o
, MSG
);
2047 is_client_sendq_empty(server
, MSG
);
2049 sendto_anywhere_echo(user
, local_chan_o
, "TEST", "Hello %s!", "World");
2050 is_client_sendq_empty(user
, MSG
);
2051 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_o :LChanOp" TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, local_chan_o
, MSG
);
2052 is_client_sendq_empty(server
, MSG
);
2054 sendto_anywhere_echo(local_chan_p
, local_chan_o
, "TEST", "Hello %s!", "World");
2055 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_o :LChanOp" TEST_ID_SUFFIX
" TEST LChanPeon Hello World!" CRLF
, local_chan_o
, MSG
);
2056 is_client_sendq_empty(local_chan_p
, MSG
);
2057 is_client_sendq_empty(server
, MSG
);
2059 sendto_anywhere_echo(&me
, local_chan_o
, "TEST", "Hello %s!", "World");
2060 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_o :LChanOp" TEST_ID_SUFFIX
" TEST " TEST_ME_NAME
" Hello World!" CRLF
, local_chan_o
, MSG
);
2061 is_client_sendq_empty(server
, MSG
);
2063 sendto_anywhere_echo(remote
, local_chan_o
, "TEST", "Hello %s!", "World");
2064 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_o :LChanOp" TEST_ID_SUFFIX
" TEST " TEST_REMOTE_NICK
" Hello World!" CRLF
, local_chan_o
, MSG
);
2065 is_client_sendq_empty(server
, MSG
);
2067 sendto_anywhere_echo(server
, local_chan_o
, "TEST", "Hello %s!", "World");
2068 is_client_sendq("@time=" ADVENTURE_TIME
";account=test_o :LChanOp" TEST_ID_SUFFIX
" TEST " TEST_SERVER_NAME
" Hello World!" CRLF
, local_chan_o
, MSG
);
2069 is_client_sendq_empty(server
, MSG
);
2072 sendto_anywhere_echo(local_chan_ov
, local_chan_ov
, "TEST", "Hello %s!", "World");
2073 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanOpVoice" TEST_ID_SUFFIX
" TEST LChanOpVoice Hello World!" CRLF
, local_chan_ov
, MSG
);
2074 is_client_sendq_empty(server
, MSG
);
2076 sendto_anywhere_echo(user
, local_chan_ov
, "TEST", "Hello %s!", "World");
2077 is_client_sendq_empty(user
, MSG
);
2078 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanOpVoice" TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, local_chan_ov
, MSG
);
2079 is_client_sendq_empty(server
, MSG
);
2081 sendto_anywhere_echo(local_chan_p
, local_chan_ov
, "TEST", "Hello %s!", "World");
2082 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanOpVoice" TEST_ID_SUFFIX
" TEST LChanPeon Hello World!" CRLF
, local_chan_ov
, MSG
);
2083 is_client_sendq_empty(local_chan_p
, MSG
);
2084 is_client_sendq_empty(server
, MSG
);
2086 sendto_anywhere_echo(&me
, local_chan_ov
, "TEST", "Hello %s!", "World");
2087 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanOpVoice" TEST_ID_SUFFIX
" TEST " TEST_ME_NAME
" Hello World!" CRLF
, local_chan_ov
, MSG
);
2088 is_client_sendq_empty(server
, MSG
);
2090 sendto_anywhere_echo(remote
, local_chan_ov
, "TEST", "Hello %s!", "World");
2091 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanOpVoice" TEST_ID_SUFFIX
" TEST " TEST_REMOTE_NICK
" Hello World!" CRLF
, local_chan_ov
, MSG
);
2092 is_client_sendq_empty(server
, MSG
);
2094 sendto_anywhere_echo(server
, local_chan_ov
, "TEST", "Hello %s!", "World");
2095 is_client_sendq("@time=" ADVENTURE_TIME
" :LChanOpVoice" TEST_ID_SUFFIX
" TEST " TEST_SERVER_NAME
" Hello World!" CRLF
, local_chan_ov
, MSG
);
2096 is_client_sendq_empty(server
, MSG
);
2099 sendto_anywhere_echo(local_chan_v
, local_chan_v
, "TEST", "Hello %s!", "World");
2100 is_client_sendq("@account=test_v :LChanVoice" TEST_ID_SUFFIX
" TEST LChanVoice Hello World!" CRLF
, local_chan_v
, MSG
);
2101 is_client_sendq_empty(server
, MSG
);
2103 sendto_anywhere_echo(user
, local_chan_v
, "TEST", "Hello %s!", "World");
2104 is_client_sendq_empty(user
, MSG
);
2105 is_client_sendq("@account=test_v :LChanVoice" TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, local_chan_v
, MSG
);
2106 is_client_sendq_empty(server
, MSG
);
2108 sendto_anywhere_echo(local_chan_p
, local_chan_v
, "TEST", "Hello %s!", "World");
2109 is_client_sendq("@account=test_v :LChanVoice" TEST_ID_SUFFIX
" TEST LChanPeon Hello World!" CRLF
, local_chan_v
, MSG
);
2110 is_client_sendq_empty(local_chan_p
, MSG
);
2111 is_client_sendq_empty(server
, MSG
);
2113 sendto_anywhere_echo(&me
, local_chan_v
, "TEST", "Hello %s!", "World");
2114 is_client_sendq("@account=test_v :LChanVoice" TEST_ID_SUFFIX
" TEST " TEST_ME_NAME
" Hello World!" CRLF
, local_chan_v
, MSG
);
2115 is_client_sendq_empty(server
, MSG
);
2117 sendto_anywhere_echo(remote
, local_chan_v
, "TEST", "Hello %s!", "World");
2118 is_client_sendq("@account=test_v :LChanVoice" TEST_ID_SUFFIX
" TEST " TEST_REMOTE_NICK
" Hello World!" CRLF
, local_chan_v
, MSG
);
2119 is_client_sendq_empty(server
, MSG
);
2121 sendto_anywhere_echo(server
, local_chan_v
, "TEST", "Hello %s!", "World");
2122 is_client_sendq("@account=test_v :LChanVoice" TEST_ID_SUFFIX
" TEST " TEST_SERVER_NAME
" Hello World!" CRLF
, local_chan_v
, MSG
);
2123 is_client_sendq_empty(server
, MSG
);
2126 sendto_anywhere_echo(local_chan_p
, local_chan_p
, "TEST", "Hello %s!", "World");
2127 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST LChanPeon Hello World!" CRLF
, local_chan_p
, MSG
);
2128 is_client_sendq_empty(server
, MSG
);
2130 sendto_anywhere_echo(user
, local_chan_p
, "TEST", "Hello %s!", "World");
2131 is_client_sendq_empty(user
, MSG
);
2132 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_NICK
" Hello World!" CRLF
, local_chan_p
, MSG
);
2133 is_client_sendq_empty(server
, MSG
);
2135 sendto_anywhere_echo(&me
, local_chan_p
, "TEST", "Hello %s!", "World");
2136 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_ME_NAME
" Hello World!" CRLF
, local_chan_p
, MSG
);
2137 is_client_sendq_empty(server
, MSG
);
2139 sendto_anywhere_echo(remote
, local_chan_p
, "TEST", "Hello %s!", "World");
2140 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_REMOTE_NICK
" Hello World!" CRLF
, local_chan_p
, MSG
);
2141 is_client_sendq_empty(server
, MSG
);
2143 sendto_anywhere_echo(server
, local_chan_p
, "TEST", "Hello %s!", "World");
2144 is_client_sendq(":LChanPeon" TEST_ID_SUFFIX
" TEST " TEST_SERVER_NAME
" Hello World!" CRLF
, local_chan_p
, MSG
);
2145 is_client_sendq_empty(server
, MSG
);
2150 static void sendto_match_servs1(void)
2154 server
->localClient
->caps
= CAP_ENCAP
;
2155 server2
->localClient
->caps
= CAP_ENCAP
;
2156 server2
->localClient
->caps
|= CAP_KNOCK
;
2157 server3
->localClient
->caps
= CAP_BAN
;
2159 // This function does not support TS5...
2163 sendto_match_servs(&me
, "*.test", 0, 0, "Hello %s!", "World");
2164 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server
, MSG
);
2165 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server2
, MSG
);
2166 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server3
, MSG
);
2168 sendto_match_servs(user
, "*.test", 0, 0, "Hello %s!", "World");
2169 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server
, MSG
);
2170 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server2
, MSG
);
2171 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server3
, MSG
);
2173 sendto_match_servs(remote
, "*.test", 0, 0, "Hello %s!", "World");
2174 is_client_sendq_empty(server
, MSG
);
2175 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server2
, MSG
);
2176 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server3
, MSG
);
2178 sendto_match_servs(server
, "*.test", 0, 0, "Hello %s!", "World");
2179 is_client_sendq_empty(server
, MSG
);
2180 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server2
, MSG
);
2181 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server3
, MSG
);
2183 // Match all, CAP_ENCAP but not CAP_KNOCK
2184 sendto_match_servs(&me
, "*.test", CAP_ENCAP
, CAP_KNOCK
, "Hello %s!", "World");
2185 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server
, MSG
);
2186 is_client_sendq_empty(server2
, MSG
);
2187 is_client_sendq_empty(server3
, MSG
);
2189 sendto_match_servs(user
, "*.test", CAP_ENCAP
, CAP_KNOCK
, "Hello %s!", "World");
2190 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server
, MSG
);
2191 is_client_sendq_empty(server2
, MSG
);
2192 is_client_sendq_empty(server3
, MSG
);
2194 sendto_match_servs(remote
, "*.test", CAP_ENCAP
, CAP_KNOCK
, "Hello %s!", "World");
2195 is_client_sendq_empty(server
, MSG
);
2196 is_client_sendq_empty(server2
, MSG
);
2197 is_client_sendq_empty(server3
, MSG
);
2199 sendto_match_servs(server
, "*.test", CAP_ENCAP
, CAP_KNOCK
, "Hello %s!", "World");
2200 is_client_sendq_empty(server
, MSG
);
2201 is_client_sendq_empty(server2
, MSG
);
2202 is_client_sendq_empty(server3
, MSG
);
2204 // Match all, but not CAP_BAN
2205 sendto_match_servs(&me
, "*.test", 0, CAP_BAN
, "Hello %s!", "World");
2206 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server
, MSG
);
2207 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server2
, MSG
);
2208 is_client_sendq_empty(server3
, MSG
);
2210 sendto_match_servs(user
, "*.test", 0, CAP_BAN
, "Hello %s!", "World");
2211 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server
, MSG
);
2212 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server2
, MSG
);
2213 is_client_sendq_empty(server3
, MSG
);
2215 sendto_match_servs(remote
, "*.test", 0, CAP_BAN
, "Hello %s!", "World");
2216 is_client_sendq_empty(server
, MSG
);
2217 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server2
, MSG
);
2218 is_client_sendq_empty(server3
, MSG
);
2220 sendto_match_servs(server
, "*.test", 0, CAP_BAN
, "Hello %s!", "World");
2221 is_client_sendq_empty(server
, MSG
);
2222 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server2
, MSG
);
2223 is_client_sendq_empty(server3
, MSG
);
2225 // Match all, CAP_BAN but not CAP_KNOCK
2226 sendto_match_servs(&me
, "*.test", CAP_BAN
, CAP_KNOCK
, "Hello %s!", "World");
2227 is_client_sendq_empty(server
, MSG
);
2228 is_client_sendq_empty(server2
, MSG
);
2229 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server3
, MSG
);
2231 sendto_match_servs(user
, "*.test", CAP_BAN
, CAP_KNOCK
, "Hello %s!", "World");
2232 is_client_sendq_empty(server
, MSG
);
2233 is_client_sendq_empty(server2
, MSG
);
2234 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server3
, MSG
);
2236 sendto_match_servs(remote
, "*.test", CAP_BAN
, CAP_KNOCK
, "Hello %s!", "World");
2237 is_client_sendq_empty(server
, MSG
);
2238 is_client_sendq_empty(server2
, MSG
);
2239 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server3
, MSG
);
2241 sendto_match_servs(server
, "*.test", CAP_BAN
, CAP_KNOCK
, "Hello %s!", "World");
2242 is_client_sendq_empty(server
, MSG
);
2243 is_client_sendq_empty(server2
, MSG
);
2244 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server3
, MSG
);
2246 // Match all, CAP_KNOCK
2247 sendto_match_servs(&me
, "*.test", CAP_KNOCK
, 0, "Hello %s!", "World");
2248 is_client_sendq_empty(server
, MSG
);
2249 is_client_sendq(":" TEST_ME_ID
" Hello World!" CRLF
, server2
, MSG
);
2250 is_client_sendq_empty(server3
, MSG
);
2252 sendto_match_servs(user
, "*.test", CAP_KNOCK
, 0, "Hello %s!", "World");
2253 is_client_sendq_empty(server
, MSG
);
2254 is_client_sendq(":" TEST_ID
" Hello World!" CRLF
, server2
, MSG
);
2255 is_client_sendq_empty(server3
, MSG
);
2257 sendto_match_servs(remote
, "*.test", CAP_KNOCK
, 0, "Hello %s!", "World");
2258 is_client_sendq_empty(server
, MSG
);
2259 is_client_sendq(":" TEST_REMOTE_ID
" Hello World!" CRLF
, server2
, MSG
);
2260 is_client_sendq_empty(server3
, MSG
);
2262 sendto_match_servs(server
, "*.test", CAP_KNOCK
, 0, "Hello %s!", "World");
2263 is_client_sendq_empty(server
, MSG
);
2264 is_client_sendq(":" TEST_SERVER_ID
" Hello World!" CRLF
, server2
, MSG
);
2265 is_client_sendq_empty(server3
, MSG
);
2268 sendto_match_servs(&me
, "*.invalid", 0, 0, "Hello %s!", "World");
2269 is_client_sendq_empty(server
, MSG
);
2270 is_client_sendq_empty(server2
, MSG
);
2271 is_client_sendq_empty(server3
, MSG
);
2273 sendto_match_servs(user
, "*.invalid", 0, 0, "Hello %s!", "World");
2274 is_client_sendq_empty(server
, MSG
);
2275 is_client_sendq_empty(server2
, MSG
);
2276 is_client_sendq_empty(server3
, MSG
);
2278 sendto_match_servs(remote
, "*.invalid", 0, 0, "Hello %s!", "World");
2279 is_client_sendq_empty(server
, MSG
);
2280 is_client_sendq_empty(server2
, MSG
);
2281 is_client_sendq_empty(server3
, MSG
);
2283 sendto_match_servs(server
, "*.invalid", 0, 0, "Hello %s!", "World");
2284 is_client_sendq_empty(server
, MSG
);
2285 is_client_sendq_empty(server2
, MSG
);
2286 is_client_sendq_empty(server3
, MSG
);
2291 static void sendto_realops_snomask1(void)
2293 struct Client
*oper1
= make_local_person_nick("oper1");
2294 struct Client
*oper2
= make_local_person_nick("oper2");
2295 struct Client
*oper3
= make_local_person_nick("oper3");
2296 struct Client
*oper4
= make_local_person_nick("oper4");
2300 make_local_person_oper(oper1
);
2301 make_local_person_oper(oper2
);
2302 make_local_person_oper(oper3
);
2303 make_local_person_oper(oper4
);
2305 oper1
->snomask
= SNO_BOTS
| SNO_SKILL
;
2306 oper2
->snomask
= SNO_GENERAL
| SNO_REJ
;
2307 oper3
->snomask
= SNO_BOTS
| SNO_SKILL
;
2308 oper4
->snomask
= SNO_GENERAL
| SNO_REJ
;
2310 oper3
->localClient
->privset
= privilegeset_get("admin");
2311 oper4
->localClient
->privset
= privilegeset_get("admin");
2313 server
->localClient
->caps
= CAP_ENCAP
| CAP_TS6
;
2314 server2
->localClient
->caps
= 0;
2316 ConfigFileEntry
.global_snotices
= 0;
2317 remote_rehash_oper_p
= NULL
;
2319 sendto_realops_snomask(SNO_BOTS
, L_ALL
, "Hello %s!", "World");
2320 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
2321 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2322 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
2323 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2324 is_client_sendq_empty(server
, MSG
);
2326 sendto_realops_snomask(SNO_BOTS
, L_ADMIN
, "Hello %s!", "World");
2327 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
2328 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2329 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
2330 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2331 is_client_sendq_empty(server
, MSG
);
2333 sendto_realops_snomask(SNO_BOTS
, L_OPER
, "Hello %s!", "World");
2334 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
2335 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2336 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
2337 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2338 is_client_sendq_empty(server
, MSG
);
2340 sendto_realops_snomask(SNO_GENERAL
, L_ALL
, "Hello %s!", "World");
2341 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2342 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
2343 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2344 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
2345 is_client_sendq_empty(server
, MSG
);
2347 sendto_realops_snomask(SNO_GENERAL
, L_ADMIN
, "Hello %s!", "World");
2348 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2349 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
2350 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2351 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
2352 is_client_sendq_empty(server
, MSG
);
2354 sendto_realops_snomask(SNO_GENERAL
, L_OPER
, "Hello %s!", "World");
2355 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2356 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
2357 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2358 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
2359 is_client_sendq_empty(server
, MSG
);
2361 remote_rehash_oper_p
= remote
;
2363 sendto_realops_snomask(SNO_BOTS
, L_ALL
, "Hello %s!", "World");
2364 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
2365 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2366 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
2367 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2368 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
2370 sendto_realops_snomask(SNO_BOTS
, L_ADMIN
, "Hello %s!", "World");
2371 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
2372 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2373 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
2374 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2375 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
2377 sendto_realops_snomask(SNO_BOTS
, L_OPER
, "Hello %s!", "World");
2378 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
2379 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2380 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
2381 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2382 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
2384 sendto_realops_snomask(SNO_GENERAL
, L_ALL
, "Hello %s!", "World");
2385 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2386 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
2387 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2388 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
2389 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
2391 sendto_realops_snomask(SNO_GENERAL
, L_ADMIN
, "Hello %s!", "World");
2392 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2393 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
2394 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2395 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
2396 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
2398 sendto_realops_snomask(SNO_GENERAL
, L_OPER
, "Hello %s!", "World");
2399 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2400 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
2401 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2402 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
2403 is_client_sendq(":" TEST_ME_NAME
" NOTICE " TEST_REMOTE_NICK
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
2407 sendto_realops_snomask(SNO_BOTS
, L_ALL
, "Hello %s!", "World");
2408 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
2409 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2410 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
2411 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2412 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
2414 sendto_realops_snomask(SNO_BOTS
, L_ADMIN
, "Hello %s!", "World");
2415 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
2416 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2417 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
2418 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2419 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
2421 sendto_realops_snomask(SNO_BOTS
, L_OPER
, "Hello %s!", "World");
2422 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
2423 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2424 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
2425 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2426 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
2428 sendto_realops_snomask(SNO_GENERAL
, L_ALL
, "Hello %s!", "World");
2429 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2430 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
2431 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2432 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
2433 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
2435 sendto_realops_snomask(SNO_GENERAL
, L_ADMIN
, "Hello %s!", "World");
2436 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2437 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
2438 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2439 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
2440 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
2442 sendto_realops_snomask(SNO_GENERAL
, L_OPER
, "Hello %s!", "World");
2443 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2444 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
2445 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2446 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
2447 is_client_sendq(":" TEST_ME_ID
" NOTICE " TEST_REMOTE_ID
" :*** Notice -- Hello World!" CRLF
, server
, MSG
);
2449 // This feature does not support TS5...
2450 ConfigFileEntry
.global_snotices
= 1;
2452 sendto_realops_snomask(SNO_BOTS
, L_NETWIDE
| L_ALL
, "Hello %s!", "World");
2453 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
2454 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2455 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
2456 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2457 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE b :Hello World!" CRLF
, server
, MSG
);
2458 is_client_sendq_empty(server2
, MSG
);
2460 sendto_realops_snomask(SNO_BOTS
, L_NETWIDE
| L_ADMIN
, "Hello %s!", "World");
2461 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
2462 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2463 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
2464 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2465 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE b :Hello World!" CRLF
, server
, MSG
);
2466 is_client_sendq_empty(server2
, MSG
);
2468 sendto_realops_snomask(SNO_BOTS
, L_NETWIDE
| L_OPER
, "Hello %s!", "World");
2469 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
2470 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2471 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
2472 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2473 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE b :Hello World!" CRLF
, server
, MSG
);
2474 is_client_sendq_empty(server2
, MSG
);
2476 sendto_realops_snomask(SNO_GENERAL
, L_NETWIDE
| L_ALL
, "Hello %s!", "World");
2477 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2478 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
2479 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2480 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
2481 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE s :Hello World!" CRLF
, server
, MSG
);
2482 is_client_sendq_empty(server2
, MSG
);
2484 sendto_realops_snomask(SNO_GENERAL
, L_NETWIDE
| L_ADMIN
, "Hello %s!", "World");
2485 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2486 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
2487 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2488 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
2489 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE s :Hello World!" CRLF
, server
, MSG
);
2490 is_client_sendq_empty(server2
, MSG
);
2492 sendto_realops_snomask(SNO_GENERAL
, L_NETWIDE
| L_OPER
, "Hello %s!", "World");
2493 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2494 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
2495 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2496 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
2497 is_client_sendq(":" TEST_ME_ID
" ENCAP * SNOTE s :Hello World!" CRLF
, server
, MSG
);
2498 is_client_sendq_empty(server2
, MSG
);
2500 remove_local_person(oper1
);
2501 remove_local_person(oper2
);
2502 remove_local_person(oper3
);
2503 remove_local_person(oper4
);
2508 static void sendto_realops_snomask_from1(void)
2510 struct Client
*oper1
= make_local_person_nick("oper1");
2511 struct Client
*oper2
= make_local_person_nick("oper2");
2512 struct Client
*oper3
= make_local_person_nick("oper3");
2513 struct Client
*oper4
= make_local_person_nick("oper4");
2515 make_local_person_oper(oper1
);
2516 make_local_person_oper(oper2
);
2517 make_local_person_oper(oper3
);
2518 make_local_person_oper(oper4
);
2520 oper1
->snomask
= SNO_BOTS
| SNO_SKILL
;
2521 oper2
->snomask
= SNO_GENERAL
| SNO_REJ
;
2522 oper3
->snomask
= SNO_BOTS
| SNO_SKILL
;
2523 oper4
->snomask
= SNO_GENERAL
| SNO_REJ
;
2525 oper3
->localClient
->privset
= privilegeset_get("admin");
2526 oper4
->localClient
->privset
= privilegeset_get("admin");
2528 sendto_realops_snomask_from(SNO_BOTS
, L_ALL
, &me
, "Hello %s!", "World");
2529 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
2530 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2531 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
2532 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2533 is_client_sendq_empty(server
, MSG
);
2535 sendto_realops_snomask_from(SNO_BOTS
, L_ADMIN
, &me
, "Hello %s!", "World");
2536 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
2537 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2538 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
2539 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2540 is_client_sendq_empty(server
, MSG
);
2542 sendto_realops_snomask_from(SNO_BOTS
, L_OPER
, &me
, "Hello %s!", "World");
2543 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
2544 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2545 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
2546 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2547 is_client_sendq_empty(server
, MSG
);
2549 sendto_realops_snomask_from(SNO_BOTS
, L_ALL
, server
, "Hello %s!", "World");
2550 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
2551 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2552 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
2553 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2554 is_client_sendq_empty(server
, MSG
);
2556 sendto_realops_snomask_from(SNO_BOTS
, L_ADMIN
, server
, "Hello %s!", "World");
2557 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
2558 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2559 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper3
, "Matches mask; " MSG
);
2560 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2561 is_client_sendq_empty(server
, MSG
);
2563 sendto_realops_snomask_from(SNO_BOTS
, L_OPER
, server
, "Hello %s!", "World");
2564 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper1
, "Matches mask; " MSG
);
2565 is_client_sendq_empty(oper2
, "Doesn't match mask; " MSG
);
2566 is_client_sendq_empty(oper3
, "Not an oper; " MSG
);
2567 is_client_sendq_empty(oper4
, "Doesn't match mask; " MSG
);
2568 is_client_sendq_empty(server
, MSG
);
2570 sendto_realops_snomask_from(SNO_GENERAL
, L_ALL
, &me
, "Hello %s!", "World");
2571 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2572 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
2573 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2574 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
2575 is_client_sendq_empty(server
, MSG
);
2577 sendto_realops_snomask_from(SNO_GENERAL
, L_ADMIN
, &me
, "Hello %s!", "World");
2578 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2579 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
2580 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2581 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
2582 is_client_sendq_empty(server
, MSG
);
2584 sendto_realops_snomask_from(SNO_GENERAL
, L_OPER
, &me
, "Hello %s!", "World");
2585 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2586 is_client_sendq(":" TEST_ME_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
2587 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2588 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
2589 is_client_sendq_empty(server
, MSG
);
2591 sendto_realops_snomask_from(SNO_GENERAL
, L_ALL
, server
, "Hello %s!", "World");
2592 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2593 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
2594 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2595 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
2596 is_client_sendq_empty(server
, MSG
);
2598 sendto_realops_snomask_from(SNO_GENERAL
, L_ADMIN
, server
, "Hello %s!", "World");
2599 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2600 is_client_sendq_empty(oper2
, "Not an admin; " MSG
);
2601 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2602 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper4
, "Matches mask; " MSG
);
2603 is_client_sendq_empty(server
, MSG
);
2605 sendto_realops_snomask_from(SNO_GENERAL
, L_OPER
, server
, "Hello %s!", "World");
2606 is_client_sendq_empty(oper1
, "Doesn't match mask; " MSG
);
2607 is_client_sendq(":" TEST_SERVER_NAME
" NOTICE * :*** Notice -- Hello World!" CRLF
, oper2
, "Matches mask; " MSG
);
2608 is_client_sendq_empty(oper3
, "Doesn't match mask; " MSG
);
2609 is_client_sendq_empty(oper4
, "Not an oper; " MSG
);
2610 is_client_sendq_empty(server
, MSG
);
2612 remove_local_person(oper1
);
2613 remove_local_person(oper2
);
2614 remove_local_person(oper3
);
2615 remove_local_person(oper4
);
2618 static void sendto_wallops_flags1(void)
2620 struct Client
*user1
= make_local_person_nick("user1");
2621 struct Client
*user2
= make_local_person_nick("user2");
2622 struct Client
*oper1
= make_local_person_nick("oper1");
2623 struct Client
*oper2
= make_local_person_nick("oper2");
2624 struct Client
*oper3
= make_local_person_nick("oper3");
2625 struct Client
*oper4
= make_local_person_nick("oper4");
2627 make_local_person_oper(oper1
);
2628 make_local_person_oper(oper2
);
2629 make_local_person_oper(oper3
);
2630 make_local_person_oper(oper4
);
2632 user1
->umodes
|= UMODE_WALLOP
;
2633 oper1
->umodes
|= UMODE_WALLOP
| UMODE_OPERWALL
;
2634 oper2
->umodes
|= UMODE_WALLOP
| UMODE_OPERWALL
| UMODE_ADMIN
;
2635 oper3
->umodes
|= UMODE_WALLOP
;
2636 oper4
->umodes
|= UMODE_OPERWALL
;
2638 sendto_wallops_flags(UMODE_WALLOP
, oper1
, "Test to users");
2639 is_client_sendq(":oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users" CRLF
, user1
, "User is +w; " MSG
);
2640 is_client_sendq_empty(user2
, "User is -w; " MSG
);
2641 is_client_sendq(":oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users" CRLF
, oper1
, "User is +w; " MSG
);
2642 is_client_sendq(":oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users" CRLF
, oper2
, "User is +w; " MSG
);
2643 is_client_sendq(":oper1" TEST_ID_SUFFIX
" WALLOPS :Test to users" CRLF
, oper3
, "User is +w; " MSG
);
2644 is_client_sendq_empty(oper4
, "User is -w; " MSG
);
2645 is_client_sendq_empty(server
, MSG
);
2647 sendto_wallops_flags(UMODE_OPERWALL
, oper2
, "Test to opers");
2648 is_client_sendq_empty(user1
, "Not an oper; " MSG
);
2649 is_client_sendq_empty(user2
, "Not an oper; " MSG
);
2650 is_client_sendq(":oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers" CRLF
, oper1
, "Oper is +z; " MSG
);
2651 is_client_sendq(":oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers" CRLF
, oper2
, "Oper is +z; " MSG
);
2652 is_client_sendq_empty(oper3
, "Oper is -z; " MSG
);
2653 is_client_sendq(":oper2" TEST_ID_SUFFIX
" WALLOPS :Test to opers" CRLF
, oper4
, "Oper is +z; " MSG
);
2654 is_client_sendq_empty(server
, MSG
);
2656 sendto_wallops_flags(UMODE_ADMIN
, &me
, "Test to admins");
2657 is_client_sendq_empty(user1
, "Not an admin; " MSG
);
2658 is_client_sendq_empty(user2
, "Not an admin; " MSG
);
2659 is_client_sendq_empty(oper1
, "Not an admin; " MSG
);
2660 is_client_sendq(":" TEST_ME_NAME
" WALLOPS :Test to admins" CRLF
, oper2
, MSG
);
2661 is_client_sendq_empty(oper3
, "Not an admin; " MSG
);
2662 is_client_sendq_empty(oper4
, "Not an admin; " MSG
);
2663 is_client_sendq_empty(server
, MSG
);
2665 remove_local_person(user1
);
2666 remove_local_person(user2
);
2667 remove_local_person(oper1
);
2668 remove_local_person(oper2
);
2669 remove_local_person(oper3
);
2670 remove_local_person(oper4
);
2673 static void kill_client1(void)
2677 kill_client(server
, remote
, "Hello %s!", "World");
2678 is_client_sendq(":" TEST_ME_NAME
" KILL " TEST_REMOTE_NICK
" :Hello World!" CRLF
, server
, MSG
);
2679 is_client_sendq_empty(server2
, MSG
);
2683 kill_client(server
, remote
, "Hello %s!", "World");
2684 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
2685 is_client_sendq_empty(server2
, MSG
);
2690 static void kill_client_serv_butone1(void)
2694 // This function does not support TS5...
2697 // If the server being sent to (or the kill target) is TS6,
2698 // then "but one" is ignored and the kill is sent anyway
2699 kill_client_serv_butone(remote
, remote
, "Hello %s!", "World");
2700 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
2701 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server2
, MSG
);
2702 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server3
, MSG
);
2704 kill_client_serv_butone(remote
, remote2
, "Hello %s!", "World");
2705 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server
, MSG
);
2706 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server2
, MSG
);
2707 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server3
, MSG
);
2709 kill_client_serv_butone(remote2
, remote
, "Hello %s!", "World");
2710 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server
, MSG
);
2711 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server2
, MSG
);
2712 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE_ID
" :Hello World!" CRLF
, server3
, MSG
);
2714 kill_client_serv_butone(remote2
, remote2
, "Hello %s!", "World");
2715 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server
, MSG
);
2716 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server2
, MSG
);
2717 is_client_sendq(":" TEST_ME_ID
" KILL " TEST_REMOTE2_ID
" :Hello World!" CRLF
, server3
, MSG
);
2722 int main(int argc
, char *argv
[])
2726 ircd_util_init(__FILE__
);
2729 // Load modules in a predictable order so that tags are added in the same order every time
2730 ircd_util_reload_module("cap_account_tag");
2731 ircd_util_reload_module("cap_server_time");
2733 CAP_ACCOUNT_TAG
= capability_get(cli_capindex
, "account-tag", NULL
);
2734 ok(CAP_ACCOUNT_TAG
!= 0, "CAP_ACCOUNT_TAG missing; " MSG
);
2736 CAP_SERVER_TIME
= capability_get(cli_capindex
, "server-time", NULL
);
2737 ok(CAP_SERVER_TIME
!= 0, "CAP_SERVER_TIME missing; " MSG
);
2739 CAP_INVITE_NOTIFY
= capability_get(cli_capindex
, "invite-notify", NULL
);
2740 ok(CAP_INVITE_NOTIFY
!= 0, "CAP_INVITE_NOTIFY missing; " MSG
);
2743 sendto_one_prefix1();
2744 sendto_one_notice1();
2745 sendto_one_numeric1();
2748 sendto_channel_flags__local__all_members();
2749 sendto_channel_flags__remote__all_members();
2750 sendto_channel_flags__local__all_members__tags();
2751 sendto_channel_flags__remote__all_members__tags();
2752 sendto_channel_flags__local__voice();
2753 sendto_channel_flags__remote__voice();
2754 sendto_channel_flags__local__chanop();
2755 sendto_channel_flags__remote__chanop();
2756 sendto_channel_flags__local__chanop_voice();
2757 sendto_channel_flags__remote__chanop_voice();
2759 sendto_channel_opmod__local();
2760 sendto_channel_opmod__remote();
2761 sendto_channel_local1();
2762 sendto_channel_local_with_capability1();
2763 sendto_channel_local_with_capability_butone1();
2764 sendto_channel_local_butone1();
2765 sendto_common_channels_local1();
2766 sendto_common_channels_local_butone1();
2768 sendto_match_butone__host();
2769 sendto_match_butone__server();
2770 sendto_match_servs1();
2771 sendto_local_clients_with_capability1();
2774 sendto_anywhere1__tags();
2775 sendto_anywhere_echo1();
2776 sendto_anywhere_echo1__tags();
2778 sendto_realops_snomask1();
2779 sendto_realops_snomask_from1();
2780 sendto_wallops_flags1();
2783 kill_client_serv_butone1();