aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJoost Kremers2024-05-07 11:52:27 +0200
committerEli Zaretskii2024-05-18 11:52:33 +0300
commit4f27d763bbe3312b6039fa59f2874bd8e002d201 (patch)
treec31ffaac0bf29a103e229ee903b003267e52a90c /test
parent19c983ddedf083f82008472c13dfd08ec94b615f (diff)
downloademacs-4f27d763bbe3312b6039fa59f2874bd8e002d201.tar.gz
emacs-4f27d763bbe3312b6039fa59f2874bd8e002d201.zip
Make 'vtable-insert-object' more versatile
* lisp/emacs-lisp/vtable.el (vtable-insert-object): Rename argument AFTER-OBJECT to LOCATION; allow use of index to refer to the insertion position; add argument BEFORE. (Bug#70664). * etc/NEWS: * doc/misc/vtable.texi (Interface Functions): Document the change. * test/lisp/emacs-lisp/vtable-tests.el (test-vtable-insert-object): New test.
Diffstat (limited to 'test')
-rw-r--r--test/lisp/emacs-lisp/vtable-tests.el30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/lisp/emacs-lisp/vtable-tests.el b/test/lisp/emacs-lisp/vtable-tests.el
index 08fdf1594a4..1d4b0650210 100644
--- a/test/lisp/emacs-lisp/vtable-tests.el
+++ b/test/lisp/emacs-lisp/vtable-tests.el
@@ -39,4 +39,34 @@
39 :insert nil))) 39 :insert nil)))
40 '(left right left)))) 40 '(left right left))))
41 41
42(ert-deftest test-vtable-insert-object ()
43 (should
44 (equal (let ((buffer (get-buffer-create " *vtable-test*")))
45 (pop-to-buffer buffer)
46 (erase-buffer)
47 (let* ((object1 '("Foo" 3))
48 (object2 '("Gazonk" 8))
49 (table (make-vtable
50 :columns '("Name" (:name "Rank" :width 5))
51 :objects (list object1 object2))))
52 (mapc (lambda (args)
53 (pcase-let ((`(,object ,location ,before) args))
54 (vtable-insert-object table object location before)))
55 `( ; Some correct inputs.
56 ;; object location before
57 (("Fizz" 4) ,object1 nil)
58 (("Bop" 7) ,object2 t)
59 (("Zat" 5) 2 nil)
60 (("Dib" 6) 3 t)
61 (("Wup" 9) nil nil)
62 (("Quam" 2) nil t)
63 ;; And some faulty inputs.
64 (("Yat" 1) -1 nil) ; non-existing index, `before' is ignored.
65 (("Vop" 10) 100 t) ; non-existing index, `before' is ignored.
66 (("Jib" 11) ("Bleh" 0) nil) ; non-existing object.
67 (("Nix" 0) ("Ugh" 0) t) ; non-existing object.
68 ))
69 (mapcar #'cadr (vtable-objects table))))
70 (number-sequence 0 11))))
71
42;;; vtable-tests.el ends here 72;;; vtable-tests.el ends here