2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								! Copyright (C) 2009 Bruno Deferrari
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								! See http://factorcode.org/license.txt for BSD license.
							 | 
						
					
						
							
								
									
										
										
										
											2008-12-17 19:10:01 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								USING: kernel tools.test accessors arrays sequences
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								io io.streams.duplex namespaces threads destructors
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								calendar concurrency.mailboxes classes assocs combinators
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								irc.messages.parser irc.client.base irc.client.chats
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								irc.client.participants irc.client.internals ;
							 | 
						
					
						
							
								
									
										
										
										
											2008-07-10 19:11:08 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								EXCLUDE: irc.messages => join ;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								RENAME: join irc.messages => join_
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								IN: irc.client.internals.tests
							 | 
						
					
						
							
								
									
										
										
										
											2008-06-01 19:58:53 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								! Streams for testing
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								TUPLE: mb-writer lines last-line disposed ;
							 | 
						
					
						
							
								
									
										
										
										
											2011-10-18 19:24:50 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								INSTANCE: mb-writer output-stream
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								TUPLE: mb-reader lines disposed ;
							 | 
						
					
						
							
								
									
										
										
										
											2011-10-18 19:24:50 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								INSTANCE: mb-reader input-stream
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: <mb-writer> ( -- mb-writer ) V{ } clone V{ } clone f mb-writer boa ;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: <mb-reader> ( -- mb-reader ) <mailbox> f mb-reader boa ;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: push-line ( line test-reader-stream -- ) lines>> mailbox-put ;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: <test-stream> ( -- stream ) <mb-reader> <mb-writer> <duplex-stream> ;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								M: mb-writer stream-write ( line mb-writer -- ) last-line>> push ;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								M: mb-writer stream-flush ( mb-writer -- ) drop ;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								M: mb-reader stream-readln ( mb-reader -- str/f ) lines>> mailbox-get ;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								M: mb-writer stream-nl ( mb-writer -- )
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    [ [ last-line>> concat ] [ lines>> ] bi push ] keep
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    V{ } clone >>last-line drop ;
							 | 
						
					
						
							
								
									
										
										
										
											2008-12-02 19:39:49 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								M: mb-reader dispose f swap push-line ;
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								M: mb-writer dispose drop ;
							 | 
						
					
						
							
								
									
										
										
										
											2008-06-02 00:33:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-21 19:38:01 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: spawn-client ( -- irc-client )
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    "someserver" irc-port "factorbot" f <irc-profile>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    <irc-client>
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        t >>is-ready
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        t >>is-running
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        <test-stream> >>stream
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    dup [ spawn-irc yield ] with-irc ;
							 | 
						
					
						
							
								
									
										
										
										
											2008-06-02 00:33:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								! to be used inside with-irc quotations
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: %add-named-chat ( chat -- ) (attach-chat) ;
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 22:02:29 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: %push-line ( line -- ) irc> stream>> in>> push-line yield ;
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: %push-lines ( lines -- ) [ %push-line ] each ;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: %join ( channel -- ) <irc-channel-chat> (attach-chat) ;
							 | 
						
					
						
							
								
									
										
										
										
											2009-03-07 17:54:28 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: %pop-output-line ( -- string ) irc> stream>> out>> lines>> pop ;
							 | 
						
					
						
							
								
									
										
										
										
											2008-06-03 18:53:27 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: read-matching-message ( chat quot: ( msg -- ? ) -- irc-message )
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-22 08:05:00 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    [ in-messages>> 0.1 seconds ] dip mailbox-get-timeout? ; inline
							 | 
						
					
						
							
								
									
										
										
										
											2008-06-02 00:33:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								: spawning-irc ( quot: ( -- ) -- )
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    [ spawn-client ] dip [ (terminate-irc) ] compose with-irc ; inline
							 | 
						
					
						
							
								
									
										
										
										
											2008-06-02 00:33:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								!                       TESTS
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
							 | 
						
					
						
							
								
									
										
										
										
											2008-06-02 00:33:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-23 23:02:36 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { t } [ irc> nick>> me? ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2008-06-02 00:33:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-23 23:02:36 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  { "factorbot" } [ irc> nick>> ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2008-06-01 19:58:53 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  { "#factortest" } [ ":someuser!n=user@some.where PRIVMSG #factortest :hi"
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                      string>irc-message chat-name ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  { "someuser" } [ ":someuser!n=user@some.where PRIVMSG factorbot :hi"
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                   string>irc-message chat-name ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-06-01 19:58:53 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-03-07 17:43:25 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								{ privmsg "#channel" "hello" } [
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    "#channel" "hello" strings>privmsg
							 | 
						
					
						
							
								
									
										
										
										
											2011-10-24 22:33:09 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    [ class-of ] [ target>> ] [ trailing>> ] tri
							 | 
						
					
						
							
								
									
										
										
										
											2009-03-07 17:43:25 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								] unit-test
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-06-03 18:53:27 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								! Test login and nickname set
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { "factorbot2" } [
							 | 
						
					
						
							
								
									
										
										
										
											2008-12-02 19:39:49 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    ":some.where 001 factorbot2 :Welcome factorbot2" %push-line
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    irc> nick>>
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-25 00:05:44 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								! Test connect
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								{ V{ "NICK factorbot" "USER factorbot hostname servername :irc.factor" } } [
							 | 
						
					
						
							
								
									
										
										
										
											2008-12-02 19:39:49 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    "someserver" irc-port "factorbot" f <irc-profile> <irc-client>
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-16 21:28:40 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    [ 2drop <test-stream> ] >>connect
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    [
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        (connect-irc)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        (do-login)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        irc> stream>> out>> lines>>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        (terminate-irc)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    ] with-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-25 00:05:44 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								] unit-test
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-28 23:01:22 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								! Test connect with password
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								{ V{ "PASS password" "NICK factorbot" "USER factorbot hostname servername :irc.factor" } } [
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    "someserver" irc-port "factorbot" "password" <irc-profile> <irc-client>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    [ 2drop <test-stream> ] >>connect
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    [
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        (connect-irc)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        (do-login)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        irc> stream>> out>> lines>>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        (terminate-irc)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    ] with-irc
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								] unit-test
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-25 00:05:44 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								! Test join
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { "JOIN #factortest" } [
							 | 
						
					
						
							
								
									
										
										
										
											2009-09-16 18:58:45 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    "#factortest" %join %pop-output-line
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { "PART #factortest" } [
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    "#factortest" %join %pop-output-line drop
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    "#factortest" chat> remove-chat %pop-output-line
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-25 00:05:44 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-25 00:05:44 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-08-06 18:05:12 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								[ { join_ "#factortest" } [
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "#factortest" <irc-channel-chat> [ %add-named-chat ] keep
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      { ":factorbot!n=factorbo@some.where JOIN :#factortest"
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        ":ircserver.net 353 factorbot @ #factortest :@factorbot "
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        ":ircserver.net 366 factorbot #factortest :End of /NAMES list."
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        ":ircserver.net 477 factorbot #factortest :[ircserver-info] blah blah"
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      } %push-lines
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      [ join? ] read-matching-message
							 | 
						
					
						
							
								
									
										
										
										
											2011-10-24 22:33:09 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      [ class-of ] [ channel>> ] bi
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { privmsg "#factortest" "hello" } [
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "#factortest" <irc-channel-chat> [ %add-named-chat ] keep
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      ":somebody!n=somebody@some.where PRIVMSG #factortest :hello" %push-line
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      [ privmsg? ] read-matching-message
							 | 
						
					
						
							
								
									
										
										
										
											2011-10-24 22:33:09 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      [ class-of ] [ target>> ] [ trailing>> ] tri
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { privmsg "factorbot" "hello" } [
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "ircuser" <irc-nick-chat>  [ %add-named-chat ] keep
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-25 00:05:44 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      ":ircuser!n=user@isp.net PRIVMSG factorbot :hello" %push-line
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      [ privmsg? ] read-matching-message
							 | 
						
					
						
							
								
									
										
										
										
											2011-10-24 22:33:09 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      [ class-of ] [ target>> ] [ trailing>> ] tri
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-07-28 23:48:25 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { mode "#factortest" "+ns" } [
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "#factortest" <irc-channel-chat>  [ %add-named-chat ] keep
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 22:02:29 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      ":ircserver.net MODE #factortest +ns" %push-line
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      [ mode? ] read-matching-message
							 | 
						
					
						
							
								
									
										
										
										
											2011-10-24 22:33:09 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      [ class-of ] [ name>> ] [ mode>> ] tri
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 22:02:29 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 22:02:29 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								! Participant lists tests
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { { "ircuser" } } [
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "#factortest" <irc-channel-chat> [ %add-named-chat ] keep
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-25 00:05:44 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      ":ircuser!n=user@isp.net JOIN :#factortest" %push-line
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      participants>> keys
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { { "ircuser2" } } [
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "#factortest" <irc-channel-chat>
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      { "ircuser2" "ircuser" } [ over join-participant ] each
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      [ %add-named-chat ] keep
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-25 00:05:44 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      ":ircuser!n=user@isp.net PART #factortest" %push-line
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      participants>> keys
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { { "ircuser2" } } [
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "#factortest" <irc-channel-chat>
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      { "ircuser2" "ircuser" } [ over join-participant ] each
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      [ %add-named-chat ] keep
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-25 00:05:44 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      ":ircuser!n=user@isp.net QUIT" %push-line
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      participants>> keys
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { { "ircuser2" } } [
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "#factortest" <irc-channel-chat>
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      { "ircuser2" "ircuser" } [ over join-participant ] each
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      [ %add-named-chat ] keep
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-25 00:05:44 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      ":ircuser2!n=user2@isp.net KICK #factortest ircuser" %push-line
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      participants>> keys
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 13:00:54 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-07-31 20:35:09 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { H{ { "ircuser2" T{ participant { nick "ircuser2" } } } } } [
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "#factortest" <irc-channel-chat>
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "ircuser" over join-participant
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      [ %add-named-chat ] keep
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-25 00:05:44 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      ":ircuser!n=user2@isp.net NICK :ircuser2" %push-line
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 22:02:29 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      participants>>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 22:02:29 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { H{ { "factorbot" T{ participant { nick "factorbot" } { operator t } } }
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								       { "ircuser" T{ participant { nick "ircuser" } } }
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								       { "voiced" T{ participant { nick "voiced" } { voice t } } } } } [
							 | 
						
					
						
							
								
									
										
										
										
											2008-11-11 21:56:01 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "#factortest" <irc-channel-chat>
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "ircuser" over join-participant
							 | 
						
					
						
							
								
									
										
										
										
											2008-11-11 21:56:01 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      [ %add-named-chat ] keep
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      { ":ircserver.net 353 factorbot @ #factortest :@factorbot "
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        ":ircserver.net 353 factorbot @ #factortest :ircuser2 "
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        ":ircserver.net 366 factorbot #factortest :End of /NAMES list."
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        ":ircserver.net 353 factorbot @ #factortest :@factorbot +voiced "
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        ":ircserver.net 353 factorbot @ #factortest :ircuser "
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        ":ircserver.net 366 factorbot #factortest :End of /NAMES list."
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      } %push-lines
							 | 
						
					
						
							
								
									
										
										
										
											2008-11-11 21:56:01 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      participants>>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-11-11 21:56:01 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { mode "#factortest" "+o" "ircuser" } [
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-05 19:18:58 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "#factortest" <irc-channel-chat> [ %add-named-chat ] keep
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "ircuser" over join-participant
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      ":ircserver.net MODE #factortest +o ircuser" %push-line
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      [ mode? ] read-matching-message
							 | 
						
					
						
							
								
									
										
										
										
											2011-10-24 22:33:09 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      { [ class-of ] [ name>> ] [ mode>> ] [ parameter>> ] } cleave
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-07 22:02:29 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-25 18:41:33 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { T{ participant { nick "ircuser" } { operator t } } } [
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-25 18:41:33 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "#factortest" <irc-channel-chat> [ %add-named-chat ] keep
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "ircuser" over join-participant
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-25 18:41:33 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      ":ircserver.net MODE #factortest +o ircuser" %push-line
							 | 
						
					
						
							
								
									
										
										
										
											2013-03-23 17:35:01 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      participants>> "ircuser" of
							 | 
						
					
						
							
								
									
										
										
										
											2008-10-25 18:41:33 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 | 
						
					
						
							
								
									
										
										
										
											2009-03-07 17:54:28 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								! Send privmsg
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								[ { "PRIVMSG #factortest :hello" } [
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "#factortest" <irc-channel-chat> [ %add-named-chat ] keep
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-08 23:04:42 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      "hello" swap (speak) %pop-output-line
							 | 
						
					
						
							
								
									
										
										
										
											2009-03-07 17:54:28 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  ] unit-test
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-12 18:44:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								] spawning-irc
							 |