1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-21 06:55:39 +00:00
emacs/test/lisp/erc/erc-notify-tests.el
F. Jason Park be3318badd Move experimental module querypoll to erc-notify
* 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.
2024-10-18 18:37:58 -07:00

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