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.
 
 
 
 
 
 

358 lines
4.8 KiB

;; Tests for font-locking code -*- lexical-binding: t -*-
(add-to-list 'load-path ".")
(load "init" nil t)
(init-rst-ert t)
(ert-deftest font-lock--asserts ()
"Check some assertions."
(should (equal ert-Buf-point-char "\^@"))
(should (equal ert-Buf-mark-char "\^?"))
)
(ert-deftest rst-forward-indented-block ()
"Tests `rst-forward-indented-block'."
(should (ert-equal-buffer-return
'(rst-forward-indented-block)
"\^@abc"
t
nil))
(should (ert-equal-buffer-return
'(rst-forward-indented-block)
(concat " \^@abc
def")
(concat " abc
\^@
def")
7))
(should (ert-equal-buffer-return
'(rst-forward-indented-block)
(concat " \^@abc
def")
(concat " abc
\^@def")
7))
(should (ert-equal-buffer-return
'(rst-forward-indented-block)
(concat " \^@abc
def
ghi")
(concat " abc
def
\^@ghi")
13))
(should (ert-equal-buffer-return
'(rst-forward-indented-block)
(concat " \^@abc
def
ghi")
(concat " abc
def
\^@
ghi")
13))
(should (ert-equal-buffer-return
'(rst-forward-indented-block)
(concat " \^@abc
def
ghi")
(concat " abc
def
\^@
ghi")
14))
(should (ert-equal-buffer-return
'(rst-forward-indented-block)
(concat " \^@abc
def
ghi")
(concat " abc
def
\^@
ghi")
17))
(should (ert-equal-buffer-return
'(rst-forward-indented-block)
(concat " \^@abc
def
ghi")
(concat " abc
def
\^@ghi")
15))
(should (ert-equal-buffer-return
'(rst-forward-indented-block)
(concat " \^@abc
def")
t
nil))
(should (ert-equal-buffer-return
'(rst-forward-indented-block)
(concat "\^@abc
def
ghi
")
t
nil))
(should (ert-equal-buffer-return
'(rst-forward-indented-block)
(concat "abc\^@ def
ghi
")
(concat "abc def
\^@ghi
")
9))
(should (ert-equal-buffer-return
'(rst-forward-indented-block)
(concat "abc\^@ def
ghi")
(concat "abc def
\^@ghi")
9))
(should (ert-equal-buffer-return
'(rst-forward-indented-block)
(concat ".. \^@abc
def
ghi
jkl
")
(concat ".. abc
def
ghi
\^@
jkl
")
23))
)
(defun extend-region (beg end)
"Wrapper for `rst-font-lock-extend-region-internal'.
Uses and sets region and returns t if region has been changed."
(interactive "r")
(let ((r (rst-font-lock-extend-region-internal beg end)))
(when r
(goto-char (car r))
(set-mark (cdr r))
t)))
(ert-deftest rst-font-lock-extend-region-internal-indent ()
"Tests `rst-font-lock-extend-region-internal'."
(should (ert-equal-buffer-return
'(extend-region)
"\^@abc\^?"
t
nil
t))
(should (ert-equal-buffer-return
'(extend-region)
"\^@ abc\^?"
t
nil
t))
(should (ert-equal-buffer-return
'(extend-region)
" abc
\^@ def\^?"
"\^@ abc
def\^?"
t
t))
(should (ert-equal-buffer-return
'(extend-region)
" abc
\^@ def
\^? ghi
uvw"
"\^@ abc
def
ghi
\^?uvw"
t
t))
(should (ert-equal-buffer-return
'(extend-region)
"xyz
abc
\^@ def
\^? ghi"
"xyz
\^@abc
def
ghi\^?"
t
t))
(should (ert-equal-buffer-return
'(extend-region)
"xyz
abc::
\^@ def
\^? ghi
uvw"
"xyz
\^@ abc::
def
ghi
\^?uvw"
t
t))
(should (ert-equal-buffer-return
'(extend-region)
"xyz
.. abc
\^@ def
\^?uvw"
"xyz
\^@ .. abc
def
\^?uvw"
t
t))
(should (ert-equal-buffer-return
'(extend-region)
"xyz
.. abc
123
\^@ def
\^?
uvw"
"xyz
\^@ .. abc
123
def
\^?
uvw"
t
t))
(should (ert-equal-buffer-return
'(extend-region)
"xyz
.. abc
123
\^@ def
\^?
uvw"
"xyz
\^@ .. abc
123
def
\^?
uvw"
t
t))
)
(ert-deftest rst-font-lock-extend-region-internal-adornment ()
"Tests `rst-font-lock-extend-region-internal'."
(should (ert-equal-buffer-return
'(extend-region)
"\^@===\^?"
t
nil
t))
(should (ert-equal-buffer-return
'(extend-region)
"abc
\^@===\^?"
"\^@abc
===\^?"
t
t))
(should (ert-equal-buffer-return ; Quite complicated without the trailing newline
'(extend-region)
"\^@abc
\^?==="
t
nil
t))
(should (ert-equal-buffer-return
'(extend-region)
"\^@abc
\^?===
"
"\^@abc
===
\^?"
t
t))
(should (ert-equal-buffer-return
'(extend-region)
"===
abc
\^@===
\^?"
"\^@===
abc
===
\^?"
t
t))
(should (ert-equal-buffer-return
'(extend-region)
"\^@===
\^?abc
===
"
"\^@===
abc
===
\^?"
t
t))
(should (ert-equal-buffer-return
'(extend-region)
"def
===
\^@abc
===
\^?"
"def
\^@===
abc
===
\^?"
t
t))
(should (ert-equal-buffer-return
'(extend-region)
"def
\^@===
abc
\^?===
xyz"
"def
\^@===
abc
===
\^?
xyz"
t
t))
)