irctest.server_tests.who

The WHO command (Modern) and IRCv3 WHOX

TODO: cross-reference RFC 1459 and RFC 2812

WhoInvisibleTestCase

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

WhoServicesTestCase

charybdis
ergo
hybrid
inspircd
inspircd-anope
inspircd-atheme
irc2
ircu2
nefarious
ngircd
ngircd-anope
ngircd-atheme
plexus4
sable
solanum
solanum-anope
solanum-atheme
unrealircd
unrealircd-anope
unrealircd-atheme
testWhoxAccount..sd..ddddssssd..d..
testWhoxNoAccount..sd..ddddssssd..d..

WhoTestCase

charybdis
ergo
hybrid
inspircd
inspircd-anope
inspircd-atheme
irc2
ircu2
nefarious
ngircd
ngircd-anope
ngircd-atheme
plexus4
sable
solanum
solanum-anope
solanum-atheme
unrealircd
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.X.dd.dd
testWhoNickAwayAndOper[exact]....dd....dd.X.dd.dd
testWhoNickAwayAndOper[mask]....dd....dd.X.dd.dd
testWhoNickAway[casefolded]....dd....dd...dd.dd
testWhoNickAway[exact]....dd....dd...dd.dd
testWhoNickAway[mask]....dd....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.X.dd.dd
testWhoNickOper[exact]....dd....dd.X.dd.dd
testWhoNickOper[mask]....dd....dd.X.dd.dd
testWhoNick[casefolded]....dd....dd...dd.dd
testWhoNick[exact]....dd....dd...dd.dd
testWhoNick[mask]....dd....dd...dd.dd
testWhoRealNameSpacesssssddssssddsssddsdd
testWhoStar....dd....dd...dd.dd
testWhoUsernameRealName[hostname]ssssddssssddsssddsdd
testWhoUsernameRealName[realname-mask]ssssddssssddsssddsdd
testWhoUsernameRealName[username]ssssddssssddsssddsdd
testWhoxFull

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

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

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

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

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

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