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
ergo
hybrid
inspircd
inspircd-anope
ircu2
nefarious
ngircd
ngircd-anope
ngircd-atheme
plexus4
sable
solanum
solanum-anope
solanum-atheme
unrealircd
unrealircd-anope
unrealircd-atheme
unrealircd-dlk
testWhoInvisiblesdd...d...dd...dd.ddd

WhoServicesTestCase

bahamut
bahamut-anope
bahamut-atheme
ergo
hybrid
inspircd
inspircd-anope
ircu2
nefarious
ngircd
ngircd-anope
ngircd-atheme
plexus4
sable
solanum
solanum-anope
solanum-atheme
unrealircd
unrealircd-anope
unrealircd-atheme
unrealircd-dlk
testWhoxAccountddd.sd.dddssssd..d...
testWhoxNoAccountddd..d.dddssssd..d...

WhoTestCase

bahamut
bahamut-anope
bahamut-atheme
ergo
hybrid
inspircd
inspircd-anope
ircu2
nefarious
ngircd
ngircd-anope
ngircd-atheme
plexus4
sable
solanum
solanum-anope
solanum-atheme
unrealircd
unrealircd-anope
unrealircd-atheme
unrealircd-dlk
testWhoChan[casefolded].dd...d...dd...dd.ddd
testWhoChan[exact].dd...d...dd...dd.ddd
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...d...dd...dd.ddd
testWhoNickAwayAndOper[casefolded].dd...d...dd.X.dd.ddd
testWhoNickAwayAndOper[exact].dd...d...dd.X.dd.ddd
testWhoNickAwayAndOper[mask]sdd...d...dd.X.dd.ddd
testWhoNickAway[casefolded].dd...d...dd...dd.ddd
testWhoNickAway[exact].dd...d...dd...dd.ddd
testWhoNickAway[mask]sdd...d...dd...dd.ddd
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...d...dd...dd.ddd
testWhoNickOper[casefolded].dd...d...dd.X.dd.ddd
testWhoNickOper[exact].dd...d...dd.X.dd.ddd
testWhoNickOper[mask]sdd...d...dd.X.dd.ddd
testWhoNick[casefolded].dd...d...dd...dd.ddd
testWhoNick[exact].dd...d...dd...dd.ddd
testWhoNick[mask]sdd...d...dd...dd.ddd
testWhoRealNameSpacessddsssdsssddsssddsddd
testWhoStarsdd...d...dd...dd.ddd
testWhoUsernameRealName[hostname]sddsssdsssddsssddsddd
testWhoUsernameRealName[realname-mask]sddsssdsssddsssddsddd
testWhoUsernameRealName[username]sddsssdsssddsssddsddd
testWhoxFull

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

ddd...dd.sddss.dd.ddd
testWhoxFullReversed

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

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

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

sdd...d..sddss.dd.ddd