diff options
author | Joost Kremers <joostkremers@fastmail.com> | 2024-05-07 11:52:27 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2024-05-18 11:52:33 +0300 |
commit | 4f27d763bbe3312b6039fa59f2874bd8e002d201 (patch) | |
tree | c31ffaac0bf29a103e229ee903b003267e52a90c /test/lisp/emacs-lisp/vtable-tests.el | |
parent | 19c983ddedf083f82008472c13dfd08ec94b615f (diff) | |
download | emacs-4f27d763bbe3312b6039fa59f2874bd8e002d201.tar.gz emacs-4f27d763bbe3312b6039fa59f2874bd8e002d201.tar.bz2 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/lisp/emacs-lisp/vtable-tests.el')
-rw-r--r-- | test/lisp/emacs-lisp/vtable-tests.el | 30 |
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 @@ :insert nil))) '(left right left)))) +(ert-deftest test-vtable-insert-object () + (should + (equal (let ((buffer (get-buffer-create " *vtable-test*"))) + (pop-to-buffer buffer) + (erase-buffer) + (let* ((object1 '("Foo" 3)) + (object2 '("Gazonk" 8)) + (table (make-vtable + :columns '("Name" (:name "Rank" :width 5)) + :objects (list object1 object2)))) + (mapc (lambda (args) + (pcase-let ((`(,object ,location ,before) args)) + (vtable-insert-object table object location before))) + `( ; Some correct inputs. + ;; object location before + (("Fizz" 4) ,object1 nil) + (("Bop" 7) ,object2 t) + (("Zat" 5) 2 nil) + (("Dib" 6) 3 t) + (("Wup" 9) nil nil) + (("Quam" 2) nil t) + ;; And some faulty inputs. + (("Yat" 1) -1 nil) ; non-existing index, `before' is ignored. + (("Vop" 10) 100 t) ; non-existing index, `before' is ignored. + (("Jib" 11) ("Bleh" 0) nil) ; non-existing object. + (("Nix" 0) ("Ugh" 0) t) ; non-existing object. + )) + (mapcar #'cadr (vtable-objects table)))) + (number-sequence 0 11)))) + ;;; vtable-tests.el ends here |