summaryrefslogtreecommitdiff
path: root/test/lisp/erc/erc-scenarios-services-misc.el
diff options
context:
space:
mode:
authorF. Jason Park <jp@neverwas.me>2025-01-30 19:07:00 -0800
committerF. Jason Park <jp@neverwas.me>2025-02-02 14:35:19 -0800
commita62a26239780684d481533a57d12de520b737f9b (patch)
treea8998e7055514e9aaa2410f5f6be448bdde8b517 /test/lisp/erc/erc-scenarios-services-misc.el
parentfb53de0c06651ed9662610790b3c2938a314c468 (diff)
downloademacs-a62a26239780684d481533a57d12de520b737f9b.tar.gz
emacs-a62a26239780684d481533a57d12de520b737f9b.tar.bz2
emacs-a62a26239780684d481533a57d12de520b737f9b.zip
Run erc-services-regain-mode callback on a timer
* lisp/erc/erc-services.el (erc-services-regain-timeout-seconds): New variable. (erc-services-regain-mode): Mention CertFP in doc string. (erc--nickname-in-use-make-request): Ensure the 900 RPL_LOGGEDIN callback always runs after `erc-services-regain-timeout-seconds', even when SASL isn't being used. * test/lisp/erc/erc-scenarios-services-misc.el (erc-scenarios-services-misc--regain-command/oftc): New test. * test/lisp/erc/resources/services/regain/taken-regain-oftc.eld: New file.
Diffstat (limited to 'test/lisp/erc/erc-scenarios-services-misc.el')
-rw-r--r--test/lisp/erc/erc-scenarios-services-misc.el25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/lisp/erc/erc-scenarios-services-misc.el b/test/lisp/erc/erc-scenarios-services-misc.el
index 823c97dd96b..13d66a54d3a 100644
--- a/test/lisp/erc/erc-scenarios-services-misc.el
+++ b/test/lisp/erc/erc-scenarios-services-misc.el
@@ -223,6 +223,31 @@
;; Works with "given" `:id'.
(should (and (erc-network) (not (eq (erc-network) 'ExampleNet)))))))
+(ert-deftest erc-scenarios-services-misc--regain-command/oftc ()
+ :tags '(:expensive-test)
+ (erc-scenarios-common-with-cleanup
+ ((erc-server-flood-penalty 0.1)
+ (erc-scenarios-common-dialog "services/regain")
+ (dumb-server (erc-d-run "localhost" t 'taken-regain-oftc))
+ (port (process-contact dumb-server :service))
+ (erc-modules `(services-regain ,@erc-modules))
+ (erc-services-regain-timeout-seconds 1)
+ (use-id-p (cl-evenp (truncate (float-time))))
+ (erc-services-regain-alist (list (cons (if use-id-p 'oftc 'OFTC)
+ #'erc-services-issue-regain)))
+ (expect (erc-d-t-make-expecter)))
+
+ (with-current-buffer (erc :server "127.0.0.1"
+ :port port
+ :nick "dummy"
+ :user "tester"
+ :full-name "tester"
+ :id (and use-id-p 'oftc))
+ (funcall expect 10 "Nickname dummy is already in use, trying dummy`")
+ (funcall expect 10 "-NickServ- REGAIN succeed on nickname")
+ (funcall expect 10 "*** Your new nickname is dummy")
+ (funcall expect 10 "*** dummy has changed mode for dummy to +R"))))
+
(ert-deftest erc-scenarios-services-misc--ghost-and-retry-nick ()
:tags '(:expensive-test)
(erc-scenarios-common-with-cleanup