diff options
Diffstat (limited to 'test')
| -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 @@ | |||
| 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 |