From: Christian Heller Date: Wed, 12 Nov 2025 08:30:19 +0000 (+0100) Subject: Refactor tests, fix some minor holes. X-Git-Url: https://plomlompom.com/repos/%7B%7Bdb.prefix%7D%7D/edit?a=commitdiff_plain;h=4892043079196866336b7297070b2bdf8b2b01dd;p=ircplom Refactor tests, fix some minor holes. --- diff --git a/src/tests/_timeout_retries.test b/src/tests/_timeout_retries.test index 6cb30a3..0a66c6e 100644 --- a/src/tests/_timeout_retries.test +++ b/src/tests/_timeout_retries.test @@ -4,14 +4,23 @@ insert ./lib/bazbarfoo insert ./lib/conn # for: attempting, connect, connected insert ./lib/cmd-disconnect +insert ./lib/disconnect +# for: disconnect1 insert ./lib/enter-list-start insert ./lib/no-timely-pong insert ./lib/retry-in +insert ./lib/usermode × fake-testing-timeout log 1 $ connection_state set to: [failed to connect: FAKE TESTING TIMEOUT] insert retry-in : +1 ? §§ +× attempting-to-connected-plus-timeout +insert attempting-to-connected : +1 6697 10000 +servermsg 0 timeout +log 1 > PING :what's up? +insert no-timely-pong + × ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× # NB: FakeIrcConnection on any port > 10000 will fail connecting with a timeout @@ -32,33 +41,27 @@ insert attempting : +1 6697 10001 log 1 $ port set to: [10000] insert fake-testing-timeout : +1 §§ 4 -# check connecting works with TestingClient port finally reduced to 10000 -insert attempting-to-connected : +1 6697 10000 - -# check retry chain also started by in-connection timeout -servermsg 0 timeout -log 1 > PING :what's up? -insert no-timely-pong +# check connecting works with TestingClient port finally reduced to 10000, +# and retry chain also started by in-connection timeout +insert attempting-to-connected-plus-timeout # check /disconnect aborts retry chain > /window 1 > /disconnect log 1 $ already disconnected, stopped connecting attempts -wait 1 +wait 2 -# connect to second server to check timed auto-retries don't activate after manual intervention -insert connect-bazbarfoo : +3 6697 10001 -insert attempting-bazbarfoo : +3 6697 10001 -log 3 $ port set to: [10000] -insert fake-testing-timeout : +3 §§ 1 - -# during retry-wait /reconnect, then wait announced duration to check nothing else happens -> /window 3 +# to check timed auto-retries don't activate after manual intervention: +# during retry-wait /reconnect, then wait beyond announced duration +> /reconnect +insert attempting-to-connected-plus-timeout > /reconnect -insert attempting-bazbarfoo : +3 6697 10000 -insert connected : +3 WIN_IDS 2 -wait 1 +insert attempting-to-connected : +1 6697 10000 +wait 2 # same way ensure retry chain wasn't solely blocked by being connected -insert cmd-disconnect : +3 -wait 1 +insert usermode +insert cmd-disconnect-0 +insert cmd-disconnect-1 :-1 +insert disconnect1 1: +1 WIN_IDS 2 +wait 2 diff --git a/src/tests/caps.test b/src/tests/caps.test index 70c84ef..13423d2 100644 --- a/src/tests/caps.test +++ b/src/tests/caps.test @@ -5,21 +5,22 @@ insert ./lib/caps insert ./lib/cmd-disconnect insert ./lib/disconnect # for: disconnect1 -insert ./lib/error-to-disconnect insert ./lib/servermsglogged +insert ./lib/usermode -× disconnect-init -insert cmd-disconnect : +1 -insert error-to-disconnect : +0 ? Closing link: ircplom says bye +× disconnect-to-reconnect-0 +insert usermode : +0 +insert cmd-disconnect-0 : +0 +insert cmd-disconnect-1 : +0 -× later-disconnect-to-reconnect -insert disconnect1 1:-1 +1 WIN_IDS 2 +× disconnect-to-reconnect-1 +insert disconnect1 1: +1 WIN_IDS 2 > /reconnect insert attempting-to-connected : +1 -× disconnect-to-reconnect-clear-caps -insert disconnect-init -insert later-disconnect-to-reconnect +× disconnect-to-reconnect +insert disconnect-to-reconnect-0 +insert disconnect-to-reconnect-1 × ×-------------------------- @@ -29,8 +30,8 @@ insert connect-to-connected insert caps-neg-empty > /window 2 -insert disconnect-init :-1 -insert later-disconnect-to-reconnect +insert disconnect-to-reconnect-0 :-1 +insert disconnect-to-reconnect-1 # check full, alphabetical processing of multi-line responses insert cap-msg : +0 ??? * LS * :foo bar baz @@ -55,7 +56,7 @@ log 1 $ caps:rba:enabled set to: [True] log 1 $ caps:zab:enabled set to: [True] log 1 > CAP :END -insert disconnect-to-reconnect-clear-caps +insert disconnect-to-reconnect # check REQ for "sasl" (even if no PLAIN), denied insert servermsglogged : +0 MSG :*.?.net CAP * LS :foo bar sasl @@ -68,7 +69,7 @@ insert cap-msg : +0 ??? * NAK :sasl insert cap-msg : +0 ??? * LIST : log 1 > CAP :END -insert disconnect-to-reconnect-clear-caps +insert disconnect-to-reconnect # check REQ for "sasl" with PLAIN successful (but for lack of password, negotiation still ending instantly) insert cap-msg : +0 ??? * LS :sasl=PLAIN diff --git a/src/tests/channels.test b/src/tests/channels.test index c5c90c0..ff8670d 100644 --- a/src/tests/channels.test +++ b/src/tests/channels.test @@ -1,22 +1,16 @@ insert ./lib/caps # for: caps-neg-empty +insert ./lib/channels +# for: cmd-nick, JOIN0, join-w-topic, part0, part1, topics-test insert ./lib/cmd-disconnect insert ./lib/conn # for: attempting, connected insert ./lib/connect-to-connected insert ./lib/disconnect # for: disconnect0, disconnect1 -insert ./lib/error-to-disconnect +insert ./lib/retry-in insert ./lib/servermsglogged - -× JOIN0 -log 1 > JOIN :CHANNEL -insert servermsglogged : +0 MSG :foo!~foobarbaz@baz.bar.foo JOIN CHANNEL - -× identifying-join-ch_test0 -insert JOIN0 : +0 CHANNEL #ch_test0 -log 1 $ users:me:user set to: [~foobarbaz] -log 1 $ users:me:host set to: [baz.bar.foo] +insert ./lib/usermode × join-empty insert servermsglogged : +0 MSG :foo.bar.baz 353 foo @ CHANNEL :foo @@ -24,17 +18,6 @@ log 1 $ channels:CHANNEL:exits cleared insert servermsglogged : +0 MSG :foo.bar.baz 366 foo CHANNEL :End of /NAMES list. log 1 $ channels:CHANNEL:user_ids set to: [me] -× part0 -> /part -log 1 > PART :CHANNEL -insert servermsglogged : +0 MSG :foo!~foobarbaz@baz.bar.foo PART :CHANNEL -log 1 $ channels:CHANNEL:exits:me set to: [P] -log 1 $ channels:CHANNEL:user_ids cleared - -× part1 -log 1 $ channels:CHANNEL:exits:me cleared -log 1 $ channels:CHANNEL cleared - × part-ch_test0 insert part0 : +0 CHANNEL #ch_test0 log 3 $ foo!~foobarbaz@baz.bar.foo parts @@ -46,10 +29,8 @@ log 4 $ foo!~foobarbaz@baz.bar.foo parts insert part1 : +1 CHANNEL #ch_test1 × conn-init -insert caps-neg-empty -insert servermsglogged : +0 MSG :foo.bar.baz 001 foo :Welcome to the foo.bar.baz network -log 1 $ users:me:nick set to: [?] -log 1 $ users:me:nick set to: [foo] +insert caps-neg-empty : +0 +insert usermode : +0 ~baz ~foobarbaz × privmsg_ch_test0 > /privmsg #ch_test0 TXT @@ -60,15 +41,13 @@ log 3 > [foo] TXT > /reconnect insert attempting : +1 insert connected : +1 WIN_IDS 2,3,4 -insert conn-init -insert identifying-join-ch_test0 +insert conn-init : +0 +# 001 actually triggers the auto-joins +insert servermsglogged : +0 MSG :foo.bar.baz 001 foo :Welcome to the foo.bar.baz network +insert JOIN0 : +0 CHANNEL #ch_test0 insert join-empty : +0 CHANNEL #ch_test0 log 3 $ residents: foo -× cmd_nick -> /nick ? -log 1 > NICK :? - × ×-------------------------- insert connect-to-connected @@ -81,7 +60,7 @@ log 2 $ not sending, since not in channel # check join with minimum context (no topic, no other users etc.) > /join #ch_test0 -insert identifying-join-ch_test0 +insert JOIN0 : +0 CHANNEL #ch_test0 insert join-empty : +0 CHANNEL #ch_test0 log 3 $ residents: foo @@ -153,13 +132,7 @@ log 3 $ residents: bar, baz, oof, rab, zab, foo # check /join into channel with topic set > /window 4 insert part-ch_test1 -> /join -insert JOIN0 : +0 CHANNEL #ch_test1 -insert servermsglogged : +0 MSG :foo.bar.baz 332 foo #ch_test1 :foo bar baz -log 1 $ channels:#ch_test1:exits cleared -insert servermsglogged : +0 MSG :foo.bar.baz 333 foo #ch_test1 bar!~bar@OLD.bar.bar 1234567890 -log 1 $ channels:#ch_test1:topic set to: [Topic(what='foo bar baz', who=NickUserHost(nick='bar', user='~bar', host='OLD.bar.bar'))] -log 4 $ bar!~bar@OLD.bar.bar set topic: foo bar baz +insert join-w-topic : +0 CHANNAME #ch_test1 insert servermsglogged : +0 MSG :foo.bar.baz 353 foo @ #ch_test1 :foo bar insert servermsglogged : +0 MSG :foo.bar.baz 366 foo #ch_test1 :End of /NAMES list. log 1 $ channels:#ch_test1:user_ids set to: [1], [me] @@ -169,14 +142,9 @@ log 4 $ residents: bar, foo insert servermsglogged : +0 MSG :bar!~bar@bar.bar TOPIC #ch_test1 :foo bar baz log 1 $ users:1:user set to: [~bar] log 1 $ users:1:host set to: [bar.bar] -log 1 $ channels:#ch_test1:topic set to: [Topic(what='foo bar baz', who=NickUserHost(nick='bar', user='~bar', host='bar.bar'))] # … is echoed into channel window _if_ either content or setter change -log 4 $ bar!~bar@bar.bar set topic: foo bar baz -insert servermsglogged : +0 MSG :bar!~bar@bar.bar TOPIC #ch_test1 :foo bar baz -insert servermsglogged : +0 MSG :bar!~bar@bar.bar TOPIC #ch_test1 :foo foo baz -log 1 $ channels:#ch_test1:topic set to: [Topic(what='foo foo baz', who=NickUserHost(nick='bar', user='~bar', host='bar.bar'))] -log 4 $ bar!~bar@bar.bar set topic: foo foo baz +insert topics-test : +0 CHANNAME #ch_test1 # check effects of other users' messages (PRIVMSG and NOTICE) insert servermsglogged : +0 MSG :bar!~bar@bar.bar PRIVMSG #ch_test0 :msg_test3 msg_test4 @@ -229,14 +197,14 @@ log 3 $ oof!~oof@oof.oof joins insert servermsglogged : +0 MSG :bar!~bar@bar.bar NICK :bazbaz log 1 $ users:1:nick set to: [bazbaz] log 3,4 $ bar!~bar@bar.bar renames bazbaz -insert cmd_nick : +1 ? myself +insert cmd-nick : +1 ? myself insert servermsglogged : +0 MSG :foo!~foobarbaz@baz.bar.foo NICK :myself log 1 $ users:me:nick set to: [myself] log 3,4 $ foo!~foobarbaz@baz.bar.foo renames myself log 1 $ nick_wanted set to: [myself] # reverting to foo to easen fragment re-use later on -insert cmd_nick : +1 ? foo +insert cmd-nick : +1 ? foo insert servermsglogged : +0 MSG :myself!~foobarbaz@baz.bar.foo NICK :foo log 1 $ users:me:nick set to: [foo] log 3,4 $ myself!~foobarbaz@baz.bar.foo renames foo @@ -258,15 +226,12 @@ log 1 $ users:1 cleared # check effects of own QUIT while present in one channel insert part-ch_test1 -insert cmd-disconnect -insert servermsglogged : +0 MSG :foo!~foobarbaz@baz.bar.foo QUIT :Client Quit -log 1 $ users:me:exit_msg set to: [QClient Quit] -log , $ foo!~foobarbaz@baz.bar.foo quits: Client Quit +insert cmd-disconnect-0 : +0 ~baz ~foobarbaz log 1 $ channels:#ch_test0:exits:me set to: [QClient Quit] log 1 $ channels:#ch_test0:user_ids set to: [2], [4], [6] log 3 $ foo!~foobarbaz@baz.bar.foo quits: Client Quit log 1 $ channels:#ch_test0:exits:me cleared -insert error-to-disconnect :-1 +0 ? Closing link: Closing link: (~foobarbaz@baz.bar.foo) [Quit: ircplom says bye] +insert cmd-disconnect-1 :-1 +0 insert disconnect1 : +1 WIN_IDS 2,3,4 # check /reconnect calling auto-rejoin on the one channel inhabited on previous leaving @@ -276,5 +241,5 @@ insert reconnect servermsg 0 FAKE_IRC_CONN_ABORT_EXCEPTION insert disconnect0 :-1 +1 EXIT_MSG broken: FAKE_IRC_CONN_ABORT_EXCEPTION insert disconnect1 : +1 WIN_IDS 2,3,4 -log 1 $ will retry connecting in 1 seconds +insert retry-in : +1 ? 1 insert reconnect diff --git a/src/tests/connect_disconnect_legalities.test b/src/tests/connect_disconnect_legalities.test index 2319c1c..0695c0d 100644 --- a/src/tests/connect_disconnect_legalities.test +++ b/src/tests/connect_disconnect_legalities.test @@ -6,13 +6,16 @@ insert ./lib/conn-error insert ./lib/disconnect # for: disconnect1 insert ./lib/error-to-disconnect +insert ./lib/error-to-disconnected insert ./lib/retry-in +insert ./lib/usermode × ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× # to prepare, initiate connection insert connect insert attempting-to-connected +insert usermode # fail to reconnect while connected > /window 1 @@ -20,8 +23,9 @@ insert attempting-to-connected log 1 $ not re-connecting since already connected # handle /disconnect on being connected -insert cmd-disconnect -insert conn-error : +0 §§§ Closing link: (whatever@whatever.com) [Quit: ircplom says bye] +insert cmd-disconnect-0 +insert cmd-disconnect-1 :-1 +insert disconnect1 1: +1 WIN_IDS 2 # fail to disconnect when already disconnected > /disconnect @@ -32,7 +36,7 @@ log 1 $ already disconnected and not attempting connect insert attempting-to-connected # allow /disconnect outside connection for auto-connect stops -insert conn-error : +0 §§§ Closing link: (Connection timed out) +insert error-to-disconnected : +0 §§§ Closing link: (Connection timed out) insert retry-in : +1 ? 1 > /disconnect log 1 $ already disconnected, stopped connecting attempts diff --git a/src/tests/error_disconnects.test b/src/tests/error_disconnects.test index 1759636..4817f7b 100644 --- a/src/tests/error_disconnects.test +++ b/src/tests/error_disconnects.test @@ -1,15 +1,15 @@ insert ./lib/attempting-to-connected -insert ./lib/conn-error insert ./lib/connect-to-connected insert ./lib/disconnect # for: disconnect1 insert ./lib/error-to-disconnect +insert ./lib/error-to-disconnected insert ./lib/retry-in × reconnect-error-logged > /reconnect insert attempting-to-connected -insert conn-error : +0 §§§ XXX +insert error-to-disconnected : +0 §§§ XXX × ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× @@ -17,7 +17,7 @@ insert conn-error : +0 §§§ XXX insert connect-to-connected # test default ERROR handling -insert conn-error : +0 §§§ abc def ghi +insert error-to-disconnected : +0 §§§ abc def ghi # test ERROR regex (non-)matches > /window 1 diff --git a/src/tests/lib/channels b/src/tests/lib/channels new file mode 100644 index 0000000..bc3732d --- /dev/null +++ b/src/tests/lib/channels @@ -0,0 +1,37 @@ +insert ./lib/servermsglogged + +× cmd-nick +> /nick ? +log 1 > NICK :? + +× JOIN0 +log 1 > JOIN :CHANNEL +insert servermsglogged : +0 MSG :foo!~foobarbaz@baz.bar.foo JOIN CHANNEL + +× join-w-topic +> /join CHANNAME +insert JOIN0 : +0 CHANNEL CHANNAME +insert servermsglogged : +0 MSG :foo.bar.baz 332 foo CHANNAME :foo bar baz +log 1 $ channels:CHANNAME:exits cleared +insert servermsglogged : +0 MSG :foo.bar.baz 333 foo CHANNAME bar!~bar@OLD.bar.bar 1234567890 +log 1 $ channels:CHANNAME:topic set to: [Topic(what='foo bar baz', who=NickUserHost(nick='bar', user='~bar', host='OLD.bar.bar'))] +log 4 $ bar!~bar@OLD.bar.bar set topic: foo bar baz + +× part0 +> /part +log 1 > PART :CHANNEL +insert servermsglogged : +0 MSG :foo!~foobarbaz@baz.bar.foo PART :CHANNEL +log 1 $ channels:CHANNEL:exits:me set to: [P] +log 1 $ channels:CHANNEL:user_ids cleared + +× part1 +log 1 $ channels:CHANNEL:exits:me cleared +log 1 $ channels:CHANNEL cleared + +× topics-test +log 1 $ channels:CHANNAME:topic set to: [Topic(what='foo bar baz', who=NickUserHost(nick='bar', user='~bar', host='bar.bar'))] +log 4 $ bar!~bar@bar.bar set topic: foo bar baz +insert servermsglogged : +0 MSG :bar!~bar@bar.bar TOPIC CHANNAME :foo bar baz +insert servermsglogged : +0 MSG :bar!~bar@bar.bar TOPIC CHANNAME :foo foo baz +log 1 $ channels:CHANNAME:topic set to: [Topic(what='foo foo baz', who=NickUserHost(nick='bar', user='~bar', host='bar.bar'))] +log 4 $ bar!~bar@bar.bar set topic: foo foo baz diff --git a/src/tests/lib/cmd-disconnect b/src/tests/lib/cmd-disconnect index 3158756..489c51b 100644 --- a/src/tests/lib/cmd-disconnect +++ b/src/tests/lib/cmd-disconnect @@ -1,3 +1,13 @@ -× cmd-disconnect +insert ./lib/isupport-clear +insert ./lib/servermsglogged +insert ./lib/error-to-disconnect + +× cmd-disconnect-0 > /disconnect log 1 > QUIT :ircplom says bye +insert servermsglogged : +0 MSG :foo!~baz@baz.bar.foo QUIT :Client Quit +log 1 $ users:me:exit_msg set to: [QClient Quit] +log , $ foo!~baz@baz.bar.foo quits: Client Quit + +× cmd-disconnect-1 +insert error-to-disconnect : +0 ? Closing link: [Quit: ircplom says bye] diff --git a/src/tests/lib/conn-error b/src/tests/lib/conn-error deleted file mode 100644 index c15366b..0000000 --- a/src/tests/lib/conn-error +++ /dev/null @@ -1,8 +0,0 @@ -insert ./lib/disconnect -# for: disconnect1 -insert ./lib/error-to-disconnect - -× conn-error -insert error-to-disconnect :-1 +0 ? §§§ -insert disconnect1 1:-1 +1 WIN_IDS 2 - diff --git a/src/tests/lib/error-to-disconnect b/src/tests/lib/error-to-disconnect index 03f1559..d288fc9 100644 --- a/src/tests/lib/error-to-disconnect +++ b/src/tests/lib/error-to-disconnect @@ -5,4 +5,3 @@ insert ./lib/servermsglogged × error-to-disconnect insert servermsglogged : +0 MSG ERROR :? insert disconnect0 : +1 EXIT_MSG ? - diff --git a/src/tests/lib/error-to-disconnected b/src/tests/lib/error-to-disconnected new file mode 100644 index 0000000..b7b760a --- /dev/null +++ b/src/tests/lib/error-to-disconnected @@ -0,0 +1,7 @@ +insert ./lib/disconnect +# for: disconnect1 +insert ./lib/error-to-disconnect + +× error-to-disconnected +insert error-to-disconnect :-1 +0 ? §§§ +insert disconnect1 1:-1 +1 WIN_IDS 2 diff --git a/src/tests/lib/pingpong b/src/tests/lib/pingpong new file mode 100644 index 0000000..d2f2bec --- /dev/null +++ b/src/tests/lib/pingpong @@ -0,0 +1,5 @@ +insert ./lib/servermsglogged + +× ping-pong +insert servermsglogged : +0 MSG PING :? +log 1 > PONG :? diff --git a/src/tests/lib/usermode b/src/tests/lib/usermode new file mode 100644 index 0000000..65abf69 --- /dev/null +++ b/src/tests/lib/usermode @@ -0,0 +1,9 @@ +insert ./lib/servermsglogged + +× usermode +insert servermsglogged : +0 MSG :foo!~baz@baz.bar.foo MODE foo ABC +log 1 $ users:me:nick set to: [?] +log 1 $ users:me:nick set to: [foo] +log 1 $ users:me:user set to: [~baz] +log 1 $ users:me:host set to: [baz.bar.foo] +log 1 $ users:me:modes set to: [ABC] diff --git a/src/tests/pingpong.test b/src/tests/pingpong.test index dd32390..7d82cb6 100644 --- a/src/tests/pingpong.test +++ b/src/tests/pingpong.test @@ -2,6 +2,7 @@ insert ./lib/conn # for: attempting, connected insert ./lib/connect-to-connected insert ./lib/no-timely-pong +insert ./lib/pingpong insert ./lib/servermsglogged insert ./lib/servernotice @@ -23,8 +24,7 @@ insert no-timely-pong insert connect-to-connected # ensure we PONG properly -insert servermsglogged : +0 MSG PING :? -log 1 > PONG :? +insert ping-pong insert full-timeout diff --git a/src/tests/test.test b/src/tests/test.test index 81938bc..02faaca 100644 --- a/src/tests/test.test +++ b/src/tests/test.test @@ -1,13 +1,15 @@ insert ./lib/bazbarfoo # for: attempting-bazbarfoo, connect-bazbarfoo +insert ./lib/channels +# for: cmd-nick, JOIN0, join-w-topic, part0, part1, topics-test insert ./lib/cmd-disconnect insert ./lib/conn # for: attempting, connect, connected insert ./lib/disconnect # for: disconnect0, disconnect1 insert ./lib/enter-list-start -insert ./lib/error-to-disconnect insert ./lib/isupport-clear +insert ./lib/pingpong insert ./lib/retry-in insert ./lib/servermsglogged insert ./lib/servernotice @@ -20,8 +22,7 @@ insert ./lib/servernotice insert servernotice : +0 XXX *** Looking up your ident... insert servernotice : +0 XXX *** Looking up your hostname... insert servernotice : +0 XXX *** Found your hostname (baz.bar.foo) -insert servermsglogged : +0 MSG PING :? -log 1 > PONG :? +insert ping-pong : +0 # handle 433 insert servermsglogged : +0 MSG :*.?.net 433 * foo :Nickname already in use @@ -111,27 +112,25 @@ log 3 < (SaslServ) Last login from ~foobarbaz@foo.bar.baz on Jan 1 22:00:00 2021 × during_conn # test recoverable 432 -> /nick @foo -log 1 > NICK :@foo +insert cmd-nick : +1 ? @foo insert servermsglogged : +0 MSG :*.?.net 432 foo1 @foo :Erroneous nickname log 1 $ nickname refused for bad format, keeping current one -# join channel, collect topic, residents; update me:user from JOIN message; ensure topic.who not affecting users DB -> /join #test -log 1 > JOIN :#test -insert servermsglogged : +0 MSG :foo1!~foobarbaz@baz.bar.foo JOIN #test +# rename to easen code-reuse +insert cmd-nick : +1 ? foo +insert servermsglogged : +0 MSG :foo1!~foobarbaz@baz.bar.foo NICK :foo log 1 $ users:me:user set to: [~foobarbaz] -insert servermsglogged : +0 MSG :foo.bar.baz 332 foo1 #test :foo bar baz -log 1 $ channels:#test:exits cleared -insert servermsglogged : +0 MSG :foo.bar.baz 333 foo1 #test bar!~bar@OLD.bar.bar 1234567890 -log 1 $ channels:#test:topic set to: [Topic(what='foo bar baz', who=NickUserHost(nick='bar', user='~bar', host='OLD.bar.bar'))] -log 4 $ bar!~bar@OLD.bar.bar set topic: foo bar baz -insert servermsglogged : +0 MSG :foo.bar.baz 353 foo1 @ #test :foo1 @bar +log 1 $ users:me:nick set to: [foo] +log rename_win_ids $ foo1!~foobarbaz@baz.bar.foo renames foo + +# join channel, collect topic, residents; update me:user from JOIN message; ensure topic.who not affecting users DB +insert join-w-topic : +0 CHANNAME #test +insert servermsglogged : +0 MSG :foo.bar.baz 353 foo @ #test :foo @bar log 1 $ users:1:nick set to: [?] log 1 $ users:1:nick set to: [bar] -insert servermsglogged : +0 MSG :foo.bar.baz 366 foo1 #test :End of /NAMES list. +insert servermsglogged : +0 MSG :foo.bar.baz 366 foo #test :End of /NAMES list. log 1 $ channels:#test:user_ids set to: [1], [me] -log 4 $ residents: bar, foo1 +log 4 $ residents: bar, foo # deliver PRIVMSG to channel window, update sender's user+host from metadata insert servermsglogged : +0 MSG :bar!~bar@bar.bar PRIVMSG #test :hi there @@ -141,12 +140,7 @@ log 4 < [bar] hi there # check _changing_ TOPIC message is communicated to channel window, as long as either content or who change insert servermsglogged : +0 MSG :bar!~bar@bar.bar TOPIC #test :foo bar baz -log 1 $ channels:#test:topic set to: [Topic(what='foo bar baz', who=NickUserHost(nick='bar', user='~bar', host='bar.bar'))] -log 4 $ bar!~bar@bar.bar set topic: foo bar baz -insert servermsglogged : +0 MSG :bar!~bar@bar.bar TOPIC #test :foo bar baz -insert servermsglogged : +0 MSG :bar!~bar@bar.bar TOPIC #test :abc def ghi -log 1 $ channels:#test:topic set to: [Topic(what='abc def ghi', who=NickUserHost(nick='bar', user='~bar', host='bar.bar'))] -log 4 $ bar!~bar@bar.bar set topic: abc def ghi +insert topics-test : +0 CHANNAME #test # process non-self channel JOIN insert servermsglogged : +0 MSG :baz!~baz@baz.baz JOIN :#test @@ -158,33 +152,27 @@ log 1 $ channels:#test:user_ids set to: [1], [2], [me] log 4 $ baz!~baz@baz.baz joins # join second channel with partial residents identity to compare distribution of resident-specific messages -> /join #testtest -log 1 > JOIN :#testtest -insert servermsglogged : +0 MSG :foo1!~foobarbaz@baz.bar.foo JOIN #testtest -insert servermsglogged : +0 MSG :foo.bar.baz 332 foo1 #testtest :baz bar foo -log 1 $ channels:#testtest:exits cleared -insert servermsglogged : +0 MSG :foo.bar.baz 333 foo1 #testtest bar!~bar@OLD.bar.bar 1234567890 -log 1 $ channels:#testtest:topic set to: [Topic(what='baz bar foo', who=NickUserHost(nick='bar', user='~bar', host='OLD.bar.bar'))] -log 5 $ bar!~bar@OLD.bar.bar set topic: baz bar foo -insert servermsglogged : +0 MSG :foo.bar.baz 353 foo1 @ #testtest :foo1 baz -insert servermsglogged : +0 MSG :foo.bar.baz 366 foo1 #testtest :End of /NAMES list. +insert join-w-topic :-1 +0 CHANNAME #testtest +log 5 $ bar!~bar@OLD.bar.bar set topic: foo bar baz +insert servermsglogged : +0 MSG :foo.bar.baz 353 foo @ #testtest :foo baz +insert servermsglogged : +0 MSG :foo.bar.baz 366 foo #testtest :End of /NAMES list. log 1 $ channels:#testtest:user_ids set to: [2], [me] -log 5 $ residents: baz, foo1 +log 5 $ residents: baz, foo # handle query window with known user -insert servermsglogged : +0 MSG :baz!~baz@baz.baz PRIVMSG foo1 :hi there +insert servermsglogged : +0 MSG :baz!~baz@baz.baz PRIVMSG foo :hi there log 6 < [baz] hi there > /privmsg baz hello, how is it going log 1 > PRIVMSG baz :hello, how is it going -log 6 > [foo1] hello, how is it going -insert servermsglogged : +0 MSG :baz!~baz@baz.baz PRIVMSG foo1 :fine! +log 6 > [foo] hello, how is it going +insert servermsglogged : +0 MSG :baz!~baz@baz.baz PRIVMSG foo :fine! log 6 < [baz] fine! # handle failure to query absent user > /privmsg barbar hello! log 1 > PRIVMSG barbar :hello! -log 7 > [foo1] hello! -insert servermsglogged : +0 MSG :*.?.net 401 foo1 barbar :No such nick/channel +log 7 > [foo] hello! +insert servermsglogged : +0 MSG :*.?.net 401 foo barbar :No such nick/channel log 7 $ barbar not online # handle non-self renaming @@ -232,12 +220,11 @@ log 1 $ channels:#testtest:exits:2 cleared log 1 $ users:2 cleared # handle self-PART: clear channel, and its squatters -insert servermsglogged : +0 MSG :foo1!~foobarbaz@baz.bar.foo PART :#test -log 1 $ channels:#test:exits:me set to: [P] +> /window 4 +insert part0 :-1 +0 CHANNEL #test log 1 $ channels:#test:user_ids set to: [3] -log 4 $ foo1!~foobarbaz@baz.bar.foo parts -log 1 $ channels:#test:exits:me cleared -log 1 $ channels:#test cleared +log 4 $ foo!~foobarbaz@baz.bar.foo parts +insert part1 : +1 CHANNEL #test log 1 $ users:3 cleared # handle lack of implementation @@ -246,15 +233,13 @@ log 1 $ No handler implemented for: foo bar baz log 2,3,4,5,6,7 $ No handler implemented for: foo bar baz # handle /disconnect, clear all -insert cmd-disconnect : +1 -insert servermsglogged : +0 MSG :foo1!~foobarbaz@baz.bar.foo QUIT :Client Quit -log 1 $ users:me:exit_msg set to: [QClient Quit] -log 3,6,7 $ foo1!~foobarbaz@baz.bar.foo quits: Client Quit +insert cmd-disconnect-0 :-1 +0 ~baz ~foobarbaz +log 3,6,7 $ foo!~foobarbaz@baz.bar.foo quits: Client Quit log 1 $ channels:#testtest:exits:me set to: [QClient Quit] log 1 $ channels:#testtest:user_ids cleared -log 5 $ foo1!~foobarbaz@baz.bar.foo quits: Client Quit +log 5 $ foo!~foobarbaz@baz.bar.foo quits: Client Quit log 1 $ channels:#testtest:exits:me cleared -insert error-to-disconnect : +0 ? Closing link: (~foobarbaz@baz.bar.foo) [Quit: ircplom says bye] +insert cmd-disconnect-1 : +0 insert disconnect1 :-1 +1 WIN_IDS 2,3,4,5,6,7 log 1 $ motd cleared log 1 $ sasl_account set to: [] @@ -318,7 +303,7 @@ log 1 # /window.prompt.scroll DIRECTION log 1 # /window.raw VERB [PARAMS_STR] log 1 # /window.reconnect -insert during_conn +insert during_conn : +0 rename_win_ids 3 # test setting up second client, but 432 irrecoverably > /connect baz.bar.foo:6697 ?foo bar:baz @@ -379,4 +364,4 @@ insert conn_init_1 insert conn_init_2 :2 log 1 > JOIN :#testtest insert conn_init_2 2: -insert during_conn +insert during_conn : +0 rename_win_ids 3,6,7 diff --git a/src/tests/tui_draw.test b/src/tests/tui_draw.test index 7398119..c16da48 100644 --- a/src/tests/tui_draw.test +++ b/src/tests/tui_draw.test @@ -2,7 +2,7 @@ insert ./lib/connect-to-connected insert ./lib/enter-list-start insert ./lib/enter_misc # for: enter-help-win0, enter-unknown, enter-unprefixed -insert ./lib/servermsglogged +insert ./lib/pingpong × lines-empty-1 line 0 on_black,bright_white §§ @@ -88,10 +88,6 @@ line 0 on_black,bright_green > §§:§§:§§ ?§§ × line-cal line 0 on_black,bright_white 20§§-§§-§§ §§ -× ping-pong -insert servermsglogged : +0 MSG PING :? -log 1 > PONG :? - × history_0 insert line-cal : +0 insert line-invalid-prompt-command : +1 MSG not prefixed by /