You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
251 lines
5.0 KiB
251 lines
5.0 KiB
7 years ago
|
;; Tests for helper functions and macros. -*- lexical-binding: t -*-
|
||
|
|
||
|
(add-to-list 'load-path ".")
|
||
|
(load "init" nil t)
|
||
|
(init-rst-ert t)
|
||
|
|
||
|
(ert-deftest helpers-asserts ()
|
||
|
"Check some assertions."
|
||
|
(should (equal ert-Buf-point-char "\^@"))
|
||
|
(should (equal ert-Buf-mark-char "\^?"))
|
||
|
)
|
||
|
|
||
|
(ert-deftest rst-destructuring-dolist ()
|
||
|
"Test `rst-destructuring-dolist'."
|
||
|
(should (equal nil (rst-destructuring-dolist (i nil)
|
||
|
(signal 'error nil))))
|
||
|
(should (equal t (rst-destructuring-dolist (i nil t)
|
||
|
(signal 'error nil))))
|
||
|
(should (let (res)
|
||
|
(rst-destructuring-dolist (e '(1) res)
|
||
|
(setq res (not (boundp '--rst-destructuring-dolist-var--))))))
|
||
|
(should (equal
|
||
|
'((4 . 3) (2 . 1))
|
||
|
(let (res)
|
||
|
(rst-destructuring-dolist ((l &rest r) '((1 . 2) (3 . 4)) res)
|
||
|
(push (cons r l) res)))))
|
||
|
(should (equal
|
||
|
'((6 5 4) (3 2 1))
|
||
|
(let (res)
|
||
|
(rst-destructuring-dolist ((l m r) '((1 2 3) (4 5 6)) res)
|
||
|
(push (list r m l) res)))))
|
||
|
(should (equal
|
||
|
'(3 2 1)
|
||
|
(let (res)
|
||
|
(rst-destructuring-dolist (e '(1 2 3) res)
|
||
|
(push e res)))))
|
||
|
(should (equal
|
||
|
'(30 20 10)
|
||
|
(let (res)
|
||
|
(rst-destructuring-dolist ((e &aux (a 10)) '((1) (2) (3)) res)
|
||
|
(push (* e a) res)
|
||
|
(setq a (+ a a))))))
|
||
|
(should (equal
|
||
|
'(30 20 10)
|
||
|
(let (res)
|
||
|
(rst-destructuring-dolist ((&rest e &aux (a 10)) '(1 2 3) res)
|
||
|
(push (* e a) res)
|
||
|
(setq a (+ a a))))))
|
||
|
)
|
||
|
|
||
|
(ert-deftest rst-forward-line-strict ()
|
||
|
"Test `rst-forward-line-strict'."
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict 1)
|
||
|
"\^@"
|
||
|
t
|
||
|
nil))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict 0)
|
||
|
"\^@"
|
||
|
t
|
||
|
t))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict -1)
|
||
|
"\^@"
|
||
|
t
|
||
|
nil))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict 1)
|
||
|
"abc\^@"
|
||
|
t
|
||
|
nil))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict 0)
|
||
|
"abc\^@"
|
||
|
"\^@abc"
|
||
|
t))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict -1)
|
||
|
"abc\^@"
|
||
|
t
|
||
|
nil))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict 1)
|
||
|
"abc\^@
|
||
|
"
|
||
|
"abc
|
||
|
\^@"
|
||
|
t))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict 2)
|
||
|
"abc\^@
|
||
|
"
|
||
|
t
|
||
|
nil))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict 0)
|
||
|
"abc\^@
|
||
|
"
|
||
|
"\^@abc
|
||
|
"
|
||
|
t))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict -1)
|
||
|
"abc
|
||
|
\^@"
|
||
|
"\^@abc
|
||
|
"
|
||
|
t))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict -2)
|
||
|
"abc
|
||
|
\^@"
|
||
|
t
|
||
|
nil))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict 1 1)
|
||
|
"\^@"
|
||
|
t
|
||
|
nil))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict 1 2)
|
||
|
"\^@"
|
||
|
t
|
||
|
nil))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict 1 4)
|
||
|
"\^@abc"
|
||
|
"abc\^@"
|
||
|
t))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict 1 4)
|
||
|
"abc\^@"
|
||
|
t
|
||
|
nil))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict 1 3)
|
||
|
"\^@abc"
|
||
|
"abc\^@"
|
||
|
t))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict 1 5)
|
||
|
"abc\^@
|
||
|
"
|
||
|
"abc
|
||
|
\^@"
|
||
|
t))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-forward-line-strict 2 5)
|
||
|
"abc\^@
|
||
|
"
|
||
|
t
|
||
|
nil))
|
||
|
)
|
||
|
|
||
|
(defun forward-line-looking-at (n &rest rst-res)
|
||
|
"Call `rst-forward-line-looking-at'. If match is returned
|
||
|
return t if `(match-beginning 0)' satisfies `(bolp)'
|
||
|
and `(match-end 0)' matches mark."
|
||
|
(rst-forward-line-looking-at
|
||
|
n rst-res
|
||
|
#'(lambda (mtcd)
|
||
|
(when mtcd
|
||
|
(and (bolp)
|
||
|
(= (match-end 0) (mark)))))))
|
||
|
|
||
|
(ert-deftest rst-forward-line-looking-at ()
|
||
|
"Test `rst-forward-line-looking-at'."
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(forward-line-looking-at 0)
|
||
|
"\^@\^?"
|
||
|
t
|
||
|
t))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(forward-line-looking-at 1)
|
||
|
"\^@\^?"
|
||
|
t
|
||
|
nil))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(forward-line-looking-at 1)
|
||
|
"\^@
|
||
|
\^?"
|
||
|
t
|
||
|
t))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(forward-line-looking-at 1)
|
||
|
"\^@
|
||
|
.. \^?"
|
||
|
t
|
||
|
nil))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(forward-line-looking-at 1 'exm-sta)
|
||
|
"\^@
|
||
|
.. \^?
|
||
|
"
|
||
|
t
|
||
|
nil))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(forward-line-looking-at 1 'exm-beg)
|
||
|
"\^@
|
||
|
.. \^?
|
||
|
"
|
||
|
t
|
||
|
t))
|
||
|
)
|
||
|
|
||
|
(ert-deftest rst-delete-entire-line ()
|
||
|
"Test `rst-delete-entire-line'."
|
||
|
(should (ert-equal-buffer
|
||
|
'(rst-delete-entire-line 0)
|
||
|
"\^@"
|
||
|
t))
|
||
|
(should (ert-equal-buffer
|
||
|
'(rst-delete-entire-line 0)
|
||
|
" \^@"
|
||
|
"\^@"))
|
||
|
(should (ert-equal-buffer
|
||
|
'(rst-delete-entire-line 1)
|
||
|
"\^@
|
||
|
abc
|
||
|
"
|
||
|
"\^@
|
||
|
"))
|
||
|
(should (ert-equal-buffer
|
||
|
'(rst-delete-entire-line 2)
|
||
|
"\^@
|
||
|
abc
|
||
|
"
|
||
|
t))
|
||
|
(should (ert-equal-buffer
|
||
|
'(rst-delete-entire-line 3)
|
||
|
"\^@
|
||
|
abc
|
||
|
"
|
||
|
t))
|
||
|
(should (ert-equal-buffer
|
||
|
'(rst-delete-entire-line 0)
|
||
|
"
|
||
|
\^@abc
|
||
|
"
|
||
|
"
|
||
|
\^@"))
|
||
|
(should (ert-equal-buffer
|
||
|
'(rst-delete-entire-line -1)
|
||
|
"
|
||
|
abc
|
||
|
\^@"
|
||
|
"
|
||
|
\^@"))
|
||
|
)
|