mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-21 06:55:39 +00:00
be3318badd
* etc/ERC-NEWS: Announce migration of misplaced `querypoll' module from erc-goodies.el to erc-notify.el. * lisp/erc/erc-goodies.el: Move all definitions associated with experimental module `querypoll' to erc-notify. * lisp/erc/erc-notify.el (erc--querypoll-ring) (erc--querypoll-timer, erc-querypoll-exclude-regexp) (erc-querypoll-mode, erc-querypoll-enable, erc-querypoll-disable) (erc--queries-current-p, erc-querypoll-period-params) (erc--querypoll-compute-period, erc--querypoll-target-in-chan-p) (erc--querypoll-get-length, erc--querypoll-get-next) (erc--querypoll-subscribe, erc--querypoll-on-352) (erc--querypoll-send): Move here from erc-goodies. * test/lisp/erc/erc-goodies-tests.el (erc--querypoll-compute-period) (erc--querypoll-target-in-chan-p, erc--querypoll-get-length) (erc--querypoll-get-next): Move to new file erc-notify-tests.el. * test/lisp/erc/erc-notify-tests.el: New file. The `querypoll' module was first introduced as part of bug#70928 in ERC 5.6.
88 lines
3.1 KiB
EmacsLisp
88 lines
3.1 KiB
EmacsLisp
;;; erc-notify-tests.el --- Tests for erc-notify -*- lexical-binding:t -*-
|
|
|
|
;; Copyright (C) 2024 Free Software Foundation, Inc.
|
|
|
|
;; This file is part of GNU Emacs.
|
|
;;
|
|
;; GNU Emacs is free software: you can redistribute it and/or modify
|
|
;; it under the terms of the GNU General Public License as published
|
|
;; by the Free Software Foundation, either version 3 of the License,
|
|
;; or (at your option) any later version.
|
|
;;
|
|
;; GNU Emacs is distributed in the hope that it will be useful, but
|
|
;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
;; General Public License for more details.
|
|
;;
|
|
;; You should have received a copy of the GNU General Public License
|
|
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
;;; Commentary:
|
|
;;; Code:
|
|
(require 'erc-notify)
|
|
|
|
(require 'ert-x)
|
|
(eval-and-compile
|
|
(let ((load-path (cons (ert-resource-directory) load-path)))
|
|
(require 'erc-tests-common)))
|
|
|
|
|
|
;;;; Module `querypoll'
|
|
|
|
(ert-deftest erc--querypoll-compute-period ()
|
|
(should (equal (mapcar (lambda (i)
|
|
(/ (round (* 100 (erc--querypoll-compute-period i)))
|
|
100.0))
|
|
(number-sequence 0 10))
|
|
'(11.0 10.05 9.19 8.41 7.7 7.07 6.49 5.97 5.49 5.07 4.68))))
|
|
|
|
(declare-function ring-insert "ring" (ring item))
|
|
|
|
(ert-deftest erc--querypoll-target-in-chan-p ()
|
|
(erc-tests-common-make-server-buf)
|
|
(with-current-buffer (erc--open-target "#chan")
|
|
(erc-update-current-channel-member "bob" "bob" 'addp))
|
|
|
|
(with-current-buffer (erc--open-target "bob")
|
|
(should (erc--querypoll-target-in-chan-p (current-buffer))))
|
|
|
|
(with-current-buffer (erc--open-target "alice")
|
|
(should-not (erc--querypoll-target-in-chan-p (current-buffer))))
|
|
|
|
(when noninteractive
|
|
(erc-tests-common-kill-buffers)))
|
|
|
|
(ert-deftest erc--querypoll-get-length ()
|
|
(erc-tests-common-make-server-buf)
|
|
(with-current-buffer (erc--open-target "#chan")
|
|
(erc-update-current-channel-member "bob" "bob" 'addp))
|
|
|
|
(let ((ring (make-ring 5)))
|
|
(ring-insert ring (with-current-buffer (erc--open-target "bob")))
|
|
(should (= 0 (erc--querypoll-get-length ring)))
|
|
(ring-insert ring (with-current-buffer (erc--open-target "alice")))
|
|
(should (= 1 (erc--querypoll-get-length ring))))
|
|
|
|
(when noninteractive
|
|
(erc-tests-common-kill-buffers)))
|
|
|
|
(ert-deftest erc--querypoll-get-next ()
|
|
(erc-tests-common-make-server-buf)
|
|
(with-current-buffer (erc--open-target "#chan")
|
|
(erc-update-current-channel-member "bob" "bob" 'addp)
|
|
(erc-update-current-channel-member "alice" "alice" 'addp))
|
|
|
|
(let ((ring (make-ring 5)))
|
|
(ring-insert ring (with-current-buffer (erc--open-target "bob")))
|
|
(ring-insert ring (with-current-buffer (erc--open-target "dummy")))
|
|
(ring-insert ring (with-current-buffer (erc--open-target "alice")))
|
|
(ring-insert ring (with-current-buffer (erc--open-target "tester")))
|
|
(kill-buffer (get-buffer "dummy"))
|
|
|
|
(should (eq (get-buffer "tester") (erc--querypoll-get-next ring))))
|
|
|
|
(when noninteractive
|
|
(erc-tests-common-kill-buffers)))
|
|
|
|
;;; erc-notify-tests.el ends here
|