emacs-ipython-notebook/test/test-ein-kill-ring.el
2020-01-02 20:09:42 -05:00

41 lines
1.4 KiB
EmacsLisp

(eval-when-compile (require 'cl))
(require 'ert)
(require 'ein-kill-ring)
(ert-deftest ein:kill-ring-simple ()
(let (ein:kill-ring
ein:kill-ring-yank-pointer)
(ein:kill-new 1)
(should (equal (ein:current-kill 0) 1))))
(defun eintest:kill-ring-simple-repeat-setup ()
(cl-loop for i from 0 below 5
do (ein:kill-new i)
do (should (equal (ein:current-kill 0) i))))
(ert-deftest ein:kill-ring-simple-repeat ()
(let (ein:kill-ring
ein:kill-ring-yank-pointer)
(eintest:kill-ring-simple-repeat-setup)
(should (equal ein:kill-ring ein:kill-ring-yank-pointer))
(should (equal ein:kill-ring '(4 3 2 1 0)))))
(ert-deftest ein:kill-ring-repeat-n-1 ()
(let (ein:kill-ring
ein:kill-ring-yank-pointer)
(eintest:kill-ring-simple-repeat-setup)
(cl-loop for i in '(3 2 1 0 4 3 2)
do (should (equal (ein:current-kill 1) i)))
(should-not (equal ein:kill-ring ein:kill-ring-yank-pointer))
(should (equal ein:kill-ring '(4 3 2 1 0)))
(should (equal ein:kill-ring-yank-pointer '(2 1 0)))))
(ert-deftest ein:kill-ring-exceeds-max ()
(let (ein:kill-ring
ein:kill-ring-yank-pointer
(ein:kill-ring-max 3))
(eintest:kill-ring-simple-repeat-setup)
(should (equal ein:kill-ring ein:kill-ring-yank-pointer))
(should (equal (length ein:kill-ring) ein:kill-ring-max))
(should (equal ein:kill-ring '(4 3 2)))))