require 'runit/testcase' require 'runit/cui/testrunner' require 'rice/irc' class TestRICE__Message < RUNIT::TestCase def setup @t = RICE::Message end def teardown end def msg_to_a(str) @t.parse(str + "\r\n").to_a end def msg_to_s(*ary) @t.build(*ary).to_s.sub!("\r\n", '') end def test_to_s assert_equal(msg_to_s(nil, 'NICK', ['Wiz']), 'NICK Wiz') assert_equal(msg_to_s('WiZ!jto@tolsun.oulu.fi', 'NICK', ['Kilroy']), ':WiZ!jto@tolsun.oulu.fi NICK Kilroy') assert_equal(msg_to_s(nil, 'USER', ['guest', '0', '*', 'Ronnie Reagan']), 'USER guest 0 * :Ronnie Reagan') assert_equal(msg_to_s(nil, 'USER', ['guest', '8', '*', 'Ronnie Reagan']), 'USER guest 8 * :Ronnie Reagan') assert_equal(msg_to_s(nil, 'OPER', ['foo', 'bar']), 'OPER foo bar') assert_equal(msg_to_s(nil, 'MODE', ['WiZ', '-w']), 'MODE WiZ -w') assert_equal(msg_to_s(nil, 'MODE', ['Angel', '+i']), 'MODE Angel +i') assert_equal(msg_to_s(nil, 'MODE', ['WiZ', '-o']), 'MODE WiZ -o') assert_equal(msg_to_s(nil, 'SERVICE', ['dict', '*', '*.fr', '0', '0', 'French Dictionary']), 'SERVICE dict * *.fr 0 0 :French Dictionary') assert_equal(msg_to_s(nil, 'QUIT', ['Gone to have lunch']), 'QUIT :Gone to have lunch') assert_equal(msg_to_s('syrk!kalt@millennium.stealth.net', 'QUIT', ['Gone to have lunch']), ':syrk!kalt@millennium.stealth.net QUIT :Gone to have lunch') assert_equal(msg_to_s(nil, 'SQUIT', ['tolsun.oulu.fi', 'Bad Link ?']), 'SQUIT tolsun.oulu.fi :Bad Link ?') assert_equal(msg_to_s('Trillian', 'SQUIT', ['cm22.eng.umd.edu', 'Server out of control']), ':Trillian SQUIT cm22.eng.umd.edu :Server out of control') assert_equal(msg_to_s(nil, 'JOIN', ['#foobar']), 'JOIN #foobar') assert_equal(msg_to_s(nil, 'JOIN', ['&foo', 'fubar']), 'JOIN &foo fubar') assert_equal(msg_to_s(nil, 'JOIN', ['#foo,&bar', 'fubar']), 'JOIN #foo,&bar fubar') assert_equal(msg_to_s(nil, 'JOIN', ['#foo,#bar', 'fubar,foobar']), 'JOIN #foo,#bar fubar,foobar') assert_equal(msg_to_s(nil, 'JOIN', ['#foo,#bar']), 'JOIN #foo,#bar') assert_equal(msg_to_s(nil, 'JOIN', ['0']), 'JOIN 0') assert_equal(msg_to_s('WiZ!jto@tolsun.oulu.fi', 'JOIN', ['#Twilight_zone']), ':WiZ!jto@tolsun.oulu.fi JOIN #Twilight_zone') assert_equal(msg_to_s(nil, 'PART', ['#twilight_zone']), 'PART #twilight_zone') assert_equal(msg_to_s(nil, 'PART', ['#oz-ops,&group5']), 'PART #oz-ops,&group5') assert_equal(msg_to_s('WiZ!jto@tolsun.oulu.fi', 'PART', ['#playzone', 'I lost']), ':WiZ!jto@tolsun.oulu.fi PART #playzone :I lost') assert_equal(msg_to_s(nil, 'MODE', ['#Finnish', '+imI', '*!*@*.fi']), 'MODE #Finnish +imI *!*@*.fi') assert_equal(msg_to_s(nil, 'MODE', ['#Finnish', '+o', 'Kilroy']), 'MODE #Finnish +o Kilroy') assert_equal(msg_to_s(nil, 'MODE', ['#Finnish', '+v', 'Wiz']), 'MODE #Finnish +v Wiz') assert_equal(msg_to_s(nil, 'MODE', ['#Fins', '-s']), 'MODE #Fins -s') assert_equal(msg_to_s(nil, 'MODE', ['#42', '+k', 'oulu']), 'MODE #42 +k oulu') assert_equal(msg_to_s(nil, 'MODE', ['#42', '-k', 'oulu']), 'MODE #42 -k oulu') assert_equal(msg_to_s(nil, 'MODE', ['#eu-opers', '+l', '10']), 'MODE #eu-opers +l 10') assert_equal(msg_to_s('WiZ!jto@tolsun.oulu.fi', 'MODE', ['#eu-opers', '-l']), ':WiZ!jto@tolsun.oulu.fi MODE #eu-opers -l') assert_equal(msg_to_s(nil, 'MODE', ['&oulu', '+b']), 'MODE &oulu +b') assert_equal(msg_to_s(nil, 'MODE', ['&oulu', '+b', '*!*@*']), 'MODE &oulu +b *!*@*') assert_equal(msg_to_s(nil, 'MODE', ['&oulu', '+b', '*!*@*.edu', '+e', '*!*@*.bu.edu']), 'MODE &oulu +b *!*@*.edu +e *!*@*.bu.edu') assert_equal(msg_to_s(nil, 'MODE', ['#meditation', 'e']), 'MODE #meditation e') assert_equal(msg_to_s(nil, 'MODE', ['#meditation', 'I']), 'MODE #meditation I') assert_equal(msg_to_s(nil, 'MODE', ['!12345ircd', 'O']), 'MODE !12345ircd O') assert_equal(msg_to_s('WiZ!jto@tolsun.oulu.fi', 'TOPIC', ['#test', 'New topic']), ':WiZ!jto@tolsun.oulu.fi TOPIC #test :New topic') assert_equal(msg_to_s(nil, 'TOPIC', ['#test', 'another topic']), 'TOPIC #test :another topic') assert_equal(msg_to_s(nil, 'TOPIC', ['#test', '']), 'TOPIC #test :') assert_equal(msg_to_s(nil, 'TOPIC', ['#test']), 'TOPIC #test') assert_equal(msg_to_s(nil, 'NAMES', ['#twilight_zone,#42']), 'NAMES #twilight_zone,#42') assert_equal(msg_to_s(nil, 'NAMES', []), 'NAMES') assert_equal(msg_to_s(nil, 'LIST', []), 'LIST') assert_equal(msg_to_s(nil, 'LIST', ['#twilight_zone,#42']), 'LIST #twilight_zone,#42') assert_equal(msg_to_s('Angel!wings@irc.org', 'INVITE', ['Wiz', '#Dust']), ':Angel!wings@irc.org INVITE Wiz #Dust') assert_equal(msg_to_s(nil, 'INVITE', ['Wiz', '#Twilight_Zone']), 'INVITE Wiz #Twilight_Zone') assert_equal(msg_to_s(nil, 'KICK', ['&Melbourne', 'Matthew']), 'KICK &Melbourne Matthew') assert_equal(msg_to_s(nil, 'KICK', ['#Finnish', 'John', 'Speaking English']), 'KICK #Finnish John :Speaking English') assert_equal(msg_to_s('WiZ!jto@tolsun.oulu.fi', 'KICK', ['#Finnish', 'John']), ':WiZ!jto@tolsun.oulu.fi KICK #Finnish John') assert_equal(msg_to_s('Angel!wings@irc.org', 'PRIVMSG', ['Wiz', 'Are you receiving this message ?']), ':Angel!wings@irc.org PRIVMSG Wiz :Are you receiving this message ?') assert_equal(msg_to_s(nil, 'PRIVMSG', ['Angel', 'yes I\'m receiving it !']), 'PRIVMSG Angel :yes I\'m receiving it !') assert_equal(msg_to_s(nil, 'PRIVMSG', ['jto@tolsun.oulu.fi', 'Hello !']), 'PRIVMSG jto@tolsun.oulu.fi :Hello !') assert_equal(msg_to_s(nil, 'PRIVMSG', ['kalt%millennium.stealth.net@irc.stealth.net', 'Are you a frog?']), 'PRIVMSG kalt%millennium.stealth.net@irc.stealth.net :Are you a frog?') assert_equal(msg_to_s(nil, 'PRIVMSG', ['kalt%millennium.stealth.net', 'Do you like cheese?']), 'PRIVMSG kalt%millennium.stealth.net :Do you like cheese?') assert_equal(msg_to_s(nil, 'PRIVMSG', ['Wiz!jto@tolsun.oulu.fi', 'Hello !']), 'PRIVMSG Wiz!jto@tolsun.oulu.fi :Hello !') assert_equal(msg_to_s(nil, 'PRIVMSG', ['$*.fi', 'Server tolsun.oulu.fi rebooting.']), 'PRIVMSG $*.fi :Server tolsun.oulu.fi rebooting.') assert_equal(msg_to_s(nil, 'PRIVMSG', ['#*.edu', 'NSFNet is undergoing work, expect interruptions']), 'PRIVMSG #*.edu :NSFNet is undergoing work, expect interruptions') assert_equal(msg_to_s(nil, 'VERSION', ['tolsun.oulu.fi']), 'VERSION tolsun.oulu.fi') assert_equal(msg_to_s(nil, 'STATS', []), 'STATS') assert_equal(msg_to_s(nil, 'LINKS', ['*.au']), 'LINKS *.au') assert_equal(msg_to_s(nil, 'LINKS', ['*.edu', '*.bu.edu']), 'LINKS *.edu *.bu.edu') assert_equal(msg_to_s(nil, 'TIME', ['tolsun.oulu.fi']), 'TIME tolsun.oulu.fi') assert_equal(msg_to_s(nil, 'CONNECT', ['tolsun.oulu.fi', '6667']), 'CONNECT tolsun.oulu.fi 6667') assert_equal(msg_to_s(nil, 'TRACE', ['*.oulu.fi']), 'TRACE *.oulu.fi') assert_equal(msg_to_s(nil, 'ADMIN', ['tolsun.oulu.fi']), 'ADMIN tolsun.oulu.fi') assert_equal(msg_to_s(nil, 'ADMIN', ['syrk']), 'ADMIN syrk') assert_equal(msg_to_s(nil, 'INFO', ['csd.bu.edu']), 'INFO csd.bu.edu') assert_equal(msg_to_s(nil, 'INFO', ['Angel']), 'INFO Angel') assert_equal(msg_to_s(nil, 'SQUERY', ['irchelp', 'HELP privmsg']), 'SQUERY irchelp :HELP privmsg') assert_equal(msg_to_s(nil, 'SQUERY', ['dict@irc.fr', 'fr2en blaireau']), 'SQUERY dict@irc.fr :fr2en blaireau') assert_equal(msg_to_s(nil, 'WHO', ['*.fi']), 'WHO *.fi') assert_equal(msg_to_s(nil, 'WHO', ['jto*', 'o']), 'WHO jto* o') assert_equal(msg_to_s(nil, 'WHOIS', ['wiz']), 'WHOIS wiz') assert_equal(msg_to_s(nil, 'WHOIS', ['eff.org', 'trillian']), 'WHOIS eff.org trillian') assert_equal(msg_to_s(nil, 'WHOWAS', ['Wiz']), 'WHOWAS Wiz') assert_equal(msg_to_s(nil, 'WHOWAS', ['Mermaid', '9']), 'WHOWAS Mermaid 9') assert_equal(msg_to_s(nil, 'WHOWAS', ['Trillian', '1', '*.edu']), 'WHOWAS Trillian 1 *.edu') assert_equal(msg_to_s(nil, 'PING', ['tolsun.oulu.fi']), 'PING tolsun.oulu.fi') assert_equal(msg_to_s(nil, 'PING', ['WiZ', 'tolsun.oulu.fi']), 'PING WiZ tolsun.oulu.fi') assert_equal(msg_to_s(nil, 'PING', ['irc.funet.fi']), 'PING irc.funet.fi') # 'PING :irc.funet.fi' assert_equal(msg_to_s(nil, 'PONG', ['csd.bu.edu', 'tolsun.oulu.fi']), 'PONG csd.bu.edu tolsun.oulu.fi') assert_equal(msg_to_s(nil, 'ERROR', ['Server *.fi already exists']), 'ERROR :Server *.fi already exists') assert_equal(msg_to_s(nil, 'AWAY', ['Gone to lunch. Back in 5']), 'AWAY :Gone to lunch. Back in 5') assert_equal(msg_to_s(nil, 'REHASH', []), 'REHASH') assert_equal(msg_to_s(nil, 'DIE', []), 'DIE') assert_equal(msg_to_s(nil, 'RESTART', []), 'RESTART') assert_equal(msg_to_s(nil, 'SUMMON', ['jto']), 'SUMMON jto') assert_equal(msg_to_s(nil, 'SUMMON', ['jto', 'tolsun.oulu.fi']), 'SUMMON jto tolsun.oulu.fi') assert_equal(msg_to_s(nil, 'USERS', ['eff.org']), 'USERS eff.org') assert_equal(msg_to_s('csd.bu.edu', 'WALLOPS', ['Connect \'*.uiuc.edu 6667\' from Joshua']), ':csd.bu.edu WALLOPS :Connect \'*.uiuc.edu 6667\' from Joshua') assert_equal(msg_to_s(nil, 'USERHOST', ['Wiz', 'Michael', 'syrk']), 'USERHOST Wiz Michael syrk') assert_equal(msg_to_s('ircd.stealth.net', '302', ['yournick', 'syrk=+syrk@millennium.stealth.net']), ':ircd.stealth.net 302 yournick syrk=+syrk@millennium.stealth.net') # ':ircd.stealth.net 302 yournick :syrk=+syrk@millennium.stealth.net') assert_equal(msg_to_s(nil, 'ISON', ['phone', 'trillian', 'WiZ', 'jarlek', 'Avalon', 'Angel', 'Monstah', 'syrk']), 'ISON phone trillian WiZ jarlek Avalon Angel Monstah syrk') end def test_s_new assert_equal([nil, 'NICK', ['Wiz']], msg_to_a('NICK Wiz')) assert_equal(['WiZ!jto@tolsun.oulu.fi', 'NICK', ['Kilroy']], msg_to_a(':WiZ!jto@tolsun.oulu.fi NICK Kilroy')) assert_equal([nil, 'USER', ['guest', '0', '*', 'Ronnie Reagan']], msg_to_a('USER guest 0 * :Ronnie Reagan')) assert_equal([nil, 'USER', ['guest', '8', '*', 'Ronnie Reagan']], msg_to_a('USER guest 8 * :Ronnie Reagan')) assert_equal([nil, 'OPER', ['foo', 'bar']], msg_to_a('OPER foo bar')) assert_equal([nil, 'MODE', ['WiZ', '-w']], msg_to_a('MODE WiZ -w')) assert_equal([nil, 'MODE', ['Angel', '+i']], msg_to_a('MODE Angel +i')) assert_equal([nil, 'MODE', ['WiZ', '-o']], msg_to_a('MODE WiZ -o')) assert_equal([nil, 'SERVICE', ['dict', '*', '*.fr', '0', '0', 'French Dictionary']], msg_to_a('SERVICE dict * *.fr 0 0 :French Dictionary')) assert_equal([nil, 'QUIT', ['Gone to have lunch']], msg_to_a('QUIT :Gone to have lunch')) assert_equal(['syrk!kalt@millennium.stealth.net', 'QUIT', ['Gone to have lunch']], msg_to_a(':syrk!kalt@millennium.stealth.net QUIT :Gone to have lunch')) assert_equal([nil, 'SQUIT', ['tolsun.oulu.fi', 'Bad Link ?']], msg_to_a('SQUIT tolsun.oulu.fi :Bad Link ?')) assert_equal(['Trillian', 'SQUIT', ['cm22.eng.umd.edu', 'Server out of control']], msg_to_a(':Trillian SQUIT cm22.eng.umd.edu :Server out of control')) assert_equal([nil, 'JOIN', ['#foobar']], msg_to_a('JOIN #foobar')) assert_equal([nil, 'JOIN', ['&foo', 'fubar']], msg_to_a('JOIN &foo fubar')) assert_equal([nil, 'JOIN', ['#foo,&bar', 'fubar']], msg_to_a('JOIN #foo,&bar fubar')) assert_equal([nil, 'JOIN', ['#foo,#bar', 'fubar,foobar']], msg_to_a('JOIN #foo,#bar fubar,foobar')) assert_equal([nil, 'JOIN', ['#foo,#bar']], msg_to_a('JOIN #foo,#bar')) assert_equal([nil, 'JOIN', ['0']], msg_to_a('JOIN 0')) assert_equal(['WiZ!jto@tolsun.oulu.fi', 'JOIN', ['#Twilight_zone']], msg_to_a(':WiZ!jto@tolsun.oulu.fi JOIN #Twilight_zone')) assert_equal([nil, 'PART', ['#twilight_zone']], msg_to_a('PART #twilight_zone')) assert_equal([nil, 'PART', ['#oz-ops,&group5']], msg_to_a('PART #oz-ops,&group5')) assert_equal(['WiZ!jto@tolsun.oulu.fi', 'PART', ['#playzone', 'I lost']], msg_to_a(':WiZ!jto@tolsun.oulu.fi PART #playzone :I lost')) assert_equal([nil, 'MODE', ['#Finnish', '+imI', '*!*@*.fi']], msg_to_a('MODE #Finnish +imI *!*@*.fi')) assert_equal([nil, 'MODE', ['#Finnish', '+o', 'Kilroy']], msg_to_a('MODE #Finnish +o Kilroy')) assert_equal([nil, 'MODE', ['#Finnish', '+v', 'Wiz']], msg_to_a('MODE #Finnish +v Wiz')) assert_equal([nil, 'MODE', ['#Fins', '-s']], msg_to_a('MODE #Fins -s')) assert_equal([nil, 'MODE', ['#42', '+k', 'oulu']], msg_to_a('MODE #42 +k oulu')) assert_equal([nil, 'MODE', ['#42', '-k', 'oulu']], msg_to_a('MODE #42 -k oulu')) assert_equal([nil, 'MODE', ['#eu-opers', '+l', '10']], msg_to_a('MODE #eu-opers +l 10')) assert_equal(['WiZ!jto@tolsun.oulu.fi', 'MODE', ['#eu-opers', '-l']], msg_to_a(':WiZ!jto@tolsun.oulu.fi MODE #eu-opers -l')) assert_equal([nil, 'MODE', ['&oulu', '+b']], msg_to_a('MODE &oulu +b')) assert_equal([nil, 'MODE', ['&oulu', '+b', '*!*@*']], msg_to_a('MODE &oulu +b *!*@*')) assert_equal([nil, 'MODE', ['&oulu', '+b', '*!*@*.edu', '+e', '*!*@*.bu.edu']], msg_to_a('MODE &oulu +b *!*@*.edu +e *!*@*.bu.edu')) assert_equal([nil, 'MODE', ['#meditation', 'e']], msg_to_a('MODE #meditation e')) assert_equal([nil, 'MODE', ['#meditation', 'I']], msg_to_a('MODE #meditation I')) assert_equal([nil, 'MODE', ['!12345ircd', 'O']], msg_to_a('MODE !12345ircd O')) assert_equal(['WiZ!jto@tolsun.oulu.fi', 'TOPIC', ['#test', 'New topic']], msg_to_a(':WiZ!jto@tolsun.oulu.fi TOPIC #test :New topic')) assert_equal([nil, 'TOPIC', ['#test', 'another topic']], msg_to_a('TOPIC #test :another topic')) assert_equal([nil, 'TOPIC', ['#test', '']], msg_to_a('TOPIC #test :')) assert_equal([nil, 'TOPIC', ['#test']], msg_to_a('TOPIC #test')) assert_equal([nil, 'NAMES', ['#twilight_zone,#42']], msg_to_a('NAMES #twilight_zone,#42')) assert_equal([nil, 'NAMES', []], msg_to_a('NAMES')) assert_equal([nil, 'LIST', []], msg_to_a('LIST')) assert_equal([nil, 'LIST', ['#twilight_zone,#42']], msg_to_a('LIST #twilight_zone,#42')) assert_equal(['Angel!wings@irc.org', 'INVITE', ['Wiz', '#Dust']], msg_to_a(':Angel!wings@irc.org INVITE Wiz #Dust')) assert_equal([nil, 'INVITE', ['Wiz', '#Twilight_Zone']], msg_to_a('INVITE Wiz #Twilight_Zone')) assert_equal([nil, 'KICK', ['&Melbourne', 'Matthew']], msg_to_a('KICK &Melbourne Matthew')) assert_equal([nil, 'KICK', ['#Finnish', 'John', 'Speaking English']], msg_to_a('KICK #Finnish John :Speaking English')) assert_equal(['WiZ!jto@tolsun.oulu.fi', 'KICK', ['#Finnish', 'John']], msg_to_a(':WiZ!jto@tolsun.oulu.fi KICK #Finnish John')) assert_equal(['Angel!wings@irc.org', 'PRIVMSG', ['Wiz', 'Are you receiving this message ?']], msg_to_a(':Angel!wings@irc.org PRIVMSG Wiz :Are you receiving this message ?')) assert_equal([nil, 'PRIVMSG', ['Angel', 'yes I\'m receiving it !']], msg_to_a('PRIVMSG Angel :yes I\'m receiving it !')) assert_equal([nil, 'PRIVMSG', ['jto@tolsun.oulu.fi', 'Hello !']], msg_to_a('PRIVMSG jto@tolsun.oulu.fi :Hello !')) assert_equal([nil, 'PRIVMSG', ['kalt%millennium.stealth.net@irc.stealth.net', 'Are you a frog?']], msg_to_a('PRIVMSG kalt%millennium.stealth.net@irc.stealth.net :Are you a frog?')) assert_equal([nil, 'PRIVMSG', ['kalt%millennium.stealth.net', 'Do you like cheese?']], msg_to_a('PRIVMSG kalt%millennium.stealth.net :Do you like cheese?')) assert_equal([nil, 'PRIVMSG', ['Wiz!jto@tolsun.oulu.fi', 'Hello !']], msg_to_a('PRIVMSG Wiz!jto@tolsun.oulu.fi :Hello !')) assert_equal([nil, 'PRIVMSG', ['$*.fi', 'Server tolsun.oulu.fi rebooting.']], msg_to_a('PRIVMSG $*.fi :Server tolsun.oulu.fi rebooting.')) assert_equal([nil, 'PRIVMSG', ['#*.edu', 'NSFNet is undergoing work, expect interruptions']], msg_to_a('PRIVMSG #*.edu :NSFNet is undergoing work, expect interruptions')) assert_equal([nil, 'VERSION', ['tolsun.oulu.fi']], msg_to_a('VERSION tolsun.oulu.fi')) assert_equal([nil, 'STATS', []], msg_to_a('STATS')) assert_equal([nil, 'LINKS', ['*.au']], msg_to_a('LINKS *.au')) assert_equal([nil, 'LINKS', ['*.edu', '*.bu.edu']], msg_to_a('LINKS *.edu *.bu.edu')) assert_equal([nil, 'TIME', ['tolsun.oulu.fi']], msg_to_a('TIME tolsun.oulu.fi')) assert_equal([nil, 'CONNECT', ['tolsun.oulu.fi', '6667']], msg_to_a('CONNECT tolsun.oulu.fi 6667')) assert_equal([nil, 'TRACE', ['*.oulu.fi']], msg_to_a('TRACE *.oulu.fi')) assert_equal([nil, 'ADMIN', ['tolsun.oulu.fi']], msg_to_a('ADMIN tolsun.oulu.fi')) assert_equal([nil, 'ADMIN', ['syrk']], msg_to_a('ADMIN syrk')) assert_equal([nil, 'INFO', ['csd.bu.edu']], msg_to_a('INFO csd.bu.edu')) assert_equal([nil, 'INFO', ['Angel']], msg_to_a('INFO Angel')) assert_equal([nil, 'SQUERY', ['irchelp', 'HELP privmsg']], msg_to_a('SQUERY irchelp :HELP privmsg')) assert_equal([nil, 'SQUERY', ['dict@irc.fr', 'fr2en blaireau']], msg_to_a('SQUERY dict@irc.fr :fr2en blaireau')) assert_equal([nil, 'WHO', ['*.fi']], msg_to_a('WHO *.fi')) assert_equal([nil, 'WHO', ['jto*', 'o']], msg_to_a('WHO jto* o')) assert_equal([nil, 'WHOIS', ['wiz']], msg_to_a('WHOIS wiz')) assert_equal([nil, 'WHOIS', ['eff.org', 'trillian']], msg_to_a('WHOIS eff.org trillian')) assert_equal([nil, 'WHOWAS', ['Wiz']], msg_to_a('WHOWAS Wiz')) assert_equal([nil, 'WHOWAS', ['Mermaid', '9']], msg_to_a('WHOWAS Mermaid 9')) assert_equal([nil, 'WHOWAS', ['Trillian', '1', '*.edu']], msg_to_a('WHOWAS Trillian 1 *.edu')) assert_equal([nil, 'PING', ['tolsun.oulu.fi']], msg_to_a('PING tolsun.oulu.fi')) assert_equal([nil, 'PING', ['WiZ', 'tolsun.oulu.fi']], msg_to_a('PING WiZ tolsun.oulu.fi')) assert_equal([nil, 'PING', ['irc.funet.fi']], msg_to_a('PING :irc.funet.fi')) assert_equal([nil, 'PONG', ['csd.bu.edu', 'tolsun.oulu.fi']], msg_to_a('PONG csd.bu.edu tolsun.oulu.fi')) assert_equal([nil, 'ERROR', ['Server *.fi already exists']], msg_to_a('ERROR :Server *.fi already exists')) assert_equal([nil, 'AWAY', ['Gone to lunch. Back in 5']], msg_to_a('AWAY :Gone to lunch. Back in 5')) assert_equal([nil, 'REHASH', []], msg_to_a('REHASH')) assert_equal([nil, 'DIE', []], msg_to_a('DIE')) assert_equal([nil, 'RESTART', []], msg_to_a('RESTART')) assert_equal([nil, 'SUMMON', ['jto']], msg_to_a('SUMMON jto')) assert_equal([nil, 'SUMMON', ['jto', 'tolsun.oulu.fi']], msg_to_a('SUMMON jto tolsun.oulu.fi')) assert_equal([nil, 'USERS', ['eff.org']], msg_to_a('USERS eff.org')) assert_equal(['csd.bu.edu', 'WALLOPS', ['Connect \'*.uiuc.edu 6667\' from Joshua']], msg_to_a(':csd.bu.edu WALLOPS :Connect \'*.uiuc.edu 6667\' from Joshua')) assert_equal([nil, 'USERHOST', ['Wiz', 'Michael', 'syrk']], msg_to_a('USERHOST Wiz Michael syrk')) assert_equal(['ircd.stealth.net', '302', ['yournick', 'syrk=+syrk@millennium.stealth.net']], msg_to_a(':ircd.stealth.net 302 yournick :syrk=+syrk@millennium.stealth.net')) assert_equal([nil, 'ISON', ['phone', 'trillian', 'WiZ', 'jarlek', 'Avalon', 'Angel', 'Monstah', 'syrk']], msg_to_a('ISON phone trillian WiZ jarlek Avalon Angel Monstah syrk')) assert_equal(['ay3!akira@qp.arika.org', 'NICK', ['ay2']], msg_to_a(':ay3!akira@qp.arika.org NICK :ay2')) end end if $0 == __FILE__ if ARGV.size == 0 suite = TestRICE__Message.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestRICE__Message.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end