irctest.server_tests.who

The WHO command (Modern) and IRCv3 WHOX

TODO: cross-reference RFC 1459 and RFC 2812

WhoInvisibleTestCase

bahamut
bahamut-anope
bahamut-atheme
charybdis
ergo
hybrid
inspircd
inspircd-anope
inspircd-atheme
irc2
ircu2
nefarious
ngircd
ngircd-anope
ngircd-atheme
plexus4
sable
solanum
unrealircd
unrealircd-5
unrealircd-anope
unrealircd-atheme
testWhoInvisiblesdd....dd....dd.....dd

WhoServicesTestCase

bahamut
bahamut-anope
bahamut-atheme
charybdis
ergo
hybrid
inspircd
inspircd-anope
inspircd-atheme
irc2
ircu2
nefarious
ngircd
ngircd-anope
ngircd-atheme
plexus4
sable
solanum
unrealircd
unrealircd-5
unrealircd-anope
unrealircd-atheme
testWhoxAccountddd..sd..ddddssss.dd..
testWhoxNoAccountddd..sd..ddddssss.dd..

WhoTestCase

bahamut
bahamut-anope
bahamut-atheme
charybdis
ergo
hybrid
inspircd
inspircd-anope
inspircd-atheme
irc2
ircu2
nefarious
ngircd
ngircd-anope
ngircd-atheme
plexus4
sable
solanum
unrealircd
unrealircd-5
unrealircd-anope
unrealircd-atheme
testWhoChan[casefolded].dd....dd....dd.....dd
testWhoChan[exact].dd....dd....dd.....dd
testWhoMultiChan

When WHO <#chan> is sent, the second parameter of RPL_WHOREPLY must be #chan. See discussion on Modern: <https://github.com/ircdocs/modern-irc/issues/209>

.dd....dd....dd.....dd
testWhoNickAwayAndOper[casefolded].dd....dd....dd.X...dd
testWhoNickAwayAndOper[exact].dd....dd....dd.X...dd
testWhoNickAwayAndOper[mask]sdd....dd....dd.X...dd
testWhoNickAway[casefolded].dd....dd....dd.....dd
testWhoNickAway[exact].dd....dd....dd.....dd
testWhoNickAway[mask]sdd....dd....dd.....dd
testWhoNickNotExists

When WHO is sent with a non-existing nickname, the server must reply with a single RPL_ENDOFWHO. See: <https://github.com/ircdocs/modern-irc/pull/216>

.dd....dd....dd.....dd
testWhoNickOper[casefolded].dd....dd....dd.X...dd
testWhoNickOper[exact].dd....dd....dd.X...dd
testWhoNickOper[mask]sdd....dd....dd.X...dd
testWhoNick[casefolded].dd....dd....dd.....dd
testWhoNick[exact].dd....dd....dd.....dd
testWhoNick[mask]sdd....dd....dd.....dd
testWhoRealNameSpacessddssssddssssddsssssdd
testWhoStarsdd....dd....dd.....dd
testWhoUsernameRealName[hostname]sddssssddssssddsssssdd
testWhoUsernameRealName[realname-mask]sddssssddssssddsssssdd
testWhoUsernameRealName[username]sddssssddssssddsssssdd
testWhoxFull

https://github.com/ircv3/ircv3-specifications/pull/482

ddd..s.dddd.sddss...dd
testWhoxFullReversed

https://github.com/ircv3/ircv3-specifications/pull/482

ddd..s.dddd.sddss...dd
testWhoxOneChar[a]sdd..s.dds..sddss...dd
testWhoxOneChar[c]sdd..s.dds..sddss...dd
testWhoxOneChar[d]sdd..s.dds..sddss...dd
testWhoxOneChar[f]sdd..s.dds..sddss...dd
testWhoxOneChar[h]sdd..s.dds..sddss...dd
testWhoxOneChar[i]sdd..s.dds..sddss...dd
testWhoxOneChar[l]sdd..s.ddsXXsddss...dd
testWhoxOneChar[n]sdd..s.dds..sddss...dd
testWhoxOneChar[o]sdd..s.dds..sddss...dd
testWhoxOneChar[r]sdd..s.dds..sddss...dd
testWhoxOneChar[s]sdd..s.dds..sddss...dd
testWhoxOneChar[u]sdd..s.dds..sddss...dd
testWhoxToken

https://github.com/ircv3/ircv3-specifications/pull/482

sdd..s.dds..sddss...dd