diff options
author | F. Jason Park <jp@neverwas.me> | 2023-01-03 23:10:53 -0800 |
---|---|---|
committer | F. Jason Park <jp@neverwas.me> | 2023-04-08 14:23:51 -0700 |
commit | 8dd209eea47f3b8e1fce6dc12c13d33da1154d89 (patch) | |
tree | be44c1d337a83971a859334ea9e36c6310c3ed1d /test | |
parent | 39d4f32fc9b87598ed6070d300d5b5e17e7ea84f (diff) | |
download | emacs-8dd209eea47f3b8e1fce6dc12c13d33da1154d89.tar.gz |
Ignore killed buffers when switching in erc-track
* lisp/erc/erc-track.el (erc-track--switch-buffer): If the chosen
buffer has been killed, remove it from `erc-modified-channels-alist'
and try again.
* test/lisp/erc/erc-scenarios-misc.el
(erc-scenarios-base-kill-server-track): New test. (Bug#60560.)
Diffstat (limited to 'test')
-rw-r--r-- | test/lisp/erc/erc-scenarios-misc.el | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/lisp/erc/erc-scenarios-misc.el b/test/lisp/erc/erc-scenarios-misc.el index 5927eee48fd..bb925eed836 100644 --- a/test/lisp/erc/erc-scenarios-misc.el +++ b/test/lisp/erc/erc-scenarios-misc.el @@ -205,4 +205,38 @@ (with-current-buffer (erc-d-t-wait-for 10 (get-buffer "#chan")) (funcall expect 10 "welcome"))))) +;; Ensure that ERC does not attempt to switch to a killed server +;; buffer via `erc-track-switch-buffer'. + +(declare-function erc-track-switch-buffer "erc-track" (arg)) +(defvar erc-track-mode) + +(ert-deftest erc-scenarios-base-kill-server-track () + :tags '(:expensive-test) + (erc-scenarios-common-with-cleanup + ((erc-scenarios-common-dialog "networks/merge-server") + (dumb-server (erc-d-run "localhost" t 'track)) + (port (process-contact dumb-server :service)) + (erc-server-flood-penalty 0.1) + (expect (erc-d-t-make-expecter))) + + (ert-info ("Connect") + (with-current-buffer (erc :server "127.0.0.1" + :port port + :nick "tester") + (should (string= (buffer-name) (format "127.0.0.1:%d" port))) + (should erc-track-mode) + (funcall expect 5 "changed mode for tester") + (erc-cmd-JOIN "#chan"))) + + (ert-info ("Join channel and kill server buffer") + (with-current-buffer (erc-d-t-wait-for 10 (get-buffer "#chan")) + (funcall expect 5 "The hour that fools should ask")) + (with-current-buffer "FooNet" + (set-process-query-on-exit-flag erc-server-process nil) + (kill-buffer)) + (should-not (eq (current-buffer) (get-buffer "#chan"))) ; *temp* + (ert-simulate-command '(erc-track-switch-buffer 1)) ; No longer signals + (should (eq (current-buffer) (get-buffer "#chan")))))) + ;;; erc-scenarios-misc.el ends here |