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.
279 lines
5.5 KiB
279 lines
5.5 KiB
7 years ago
|
;; Tests for `rst-all-stn' and relatives -*- lexical-binding: t -*-
|
||
|
|
||
|
(add-to-list 'load-path ".")
|
||
|
(load "init" nil t)
|
||
|
(init-rst-ert t)
|
||
|
|
||
|
(ert-deftest toc-asserts ()
|
||
|
"Check some assertions."
|
||
|
(should (equal ert-Buf-point-char "\^@"))
|
||
|
(should (equal ert-Buf-mark-char "\^?"))
|
||
|
)
|
||
|
|
||
|
(ert-deftest rst-all-stn ()
|
||
|
"Tests `rst-all-stn'."
|
||
|
(let* ((title "=====
|
||
|
Title
|
||
|
=====
|
||
|
|
||
|
")
|
||
|
(headers "Header A
|
||
|
========
|
||
|
|
||
|
Header B
|
||
|
========
|
||
|
|
||
|
Subheader B.a
|
||
|
-------------
|
||
|
|
||
|
SubSubheader B.a.1
|
||
|
~~~~~~~~~~~~~~~~~~
|
||
|
|
||
|
Header C
|
||
|
========
|
||
|
|
||
|
Missing node C.a.1
|
||
|
~~~~~~~~~~~~~~~~~~
|
||
|
")
|
||
|
(ado-T (rst-Ado-new-over-and-under ?=))
|
||
|
(ttl-T (rst-Ttl--new ado-T '(1 18 1 6 7 12 13 18) 0
|
||
|
"Title"))
|
||
|
(ado-A (rst-Ado-new-simple ?=))
|
||
|
(ttl-A (rst-Ttl--new ado-A '(20 37 nil nil 20 28 29 37) 0
|
||
|
"Header A"))
|
||
|
(ttl-B (rst-Ttl--new ado-A '(39 56 nil nil 39 47 48 56) 0
|
||
|
"Header B"))
|
||
|
(ado-Ba (rst-Ado-new-simple ?-))
|
||
|
(ttl-Ba (rst-Ttl--new ado-Ba '(58 85 nil nil 58 71 72 85) 0
|
||
|
"Subheader B.a"))
|
||
|
(ado-Ba1 (rst-Ado-new-simple ?~))
|
||
|
(ttl-Ba1 (rst-Ttl--new ado-Ba1 '(87 124 nil nil 87 105 106 124) 0
|
||
|
"SubSubheader B.a.1"))
|
||
|
(ttl-C (rst-Ttl--new ado-A '(126 143 nil nil 126 134 135 143) 0
|
||
|
"Header C"))
|
||
|
(ttl-Ca nil)
|
||
|
(ttl-Ca1 (rst-Ttl--new ado-Ba1 '(145 182 nil nil 145 163 164 182) 0
|
||
|
"Missing node C.a.1")))
|
||
|
(let* ((stn-Ca (rst-Stn-new
|
||
|
ttl-Ca 2
|
||
|
(list (rst-Stn-new ttl-Ca1 3 nil))))
|
||
|
(stn-C (rst-Stn-new
|
||
|
ttl-C 1
|
||
|
(list stn-Ca)))
|
||
|
(stn-A (rst-Stn-new ttl-A 1 nil))
|
||
|
(stn-B (rst-Stn-new
|
||
|
ttl-B 1
|
||
|
(list (rst-Stn-new
|
||
|
ttl-Ba 2
|
||
|
(list (rst-Stn-new ttl-Ba1 3 nil))))))
|
||
|
(stn-T (rst-Stn-new
|
||
|
ttl-T 0
|
||
|
(list stn-A
|
||
|
stn-B
|
||
|
stn-C))))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-all-stn)
|
||
|
""
|
||
|
t
|
||
|
nil
|
||
|
))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-all-stn)
|
||
|
title
|
||
|
t
|
||
|
(rst-Stn-new
|
||
|
nil -1
|
||
|
(list (rst-Stn-new ttl-T 0 nil)))
|
||
|
))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-all-stn)
|
||
|
(concat title headers)
|
||
|
t
|
||
|
(rst-Stn-new
|
||
|
nil -1
|
||
|
(list stn-T))
|
||
|
))
|
||
|
)))
|
||
|
|
||
|
(ert-deftest rst-stn-containing-point ()
|
||
|
"Tests `rst-stn-containing-point'."
|
||
|
(let* (;; "
|
||
|
;; =====
|
||
|
;; Title
|
||
|
;; =====
|
||
|
;;
|
||
|
;; Header A
|
||
|
;; ========
|
||
|
;;
|
||
|
;; Header B
|
||
|
;; ========
|
||
|
;;
|
||
|
;; Subheader B.a
|
||
|
;; -------------
|
||
|
;;
|
||
|
;; SubSubheader B.a.1
|
||
|
;; ~~~~~~~~~~~~~~~~~~
|
||
|
;;
|
||
|
;; Subheader B.b
|
||
|
;; -------------
|
||
|
;;
|
||
|
;; Header C
|
||
|
;; ========
|
||
|
;;
|
||
|
;; Missing node C.a.1
|
||
|
;; ~~~~~~~~~~~~~~~~~~
|
||
|
;; "
|
||
|
(title "=====
|
||
|
Title
|
||
|
=====
|
||
|
|
||
|
")
|
||
|
(ado-T (rst-Ado-new-over-and-under ?=))
|
||
|
(ttl-T (rst-Ttl--new ado-T '(1 18 1 6 7 12 13 18) 0
|
||
|
"Title"))
|
||
|
(ado-A (rst-Ado-new-simple ?=))
|
||
|
(ttl-A (rst-Ttl--new ado-A '(20 37 nil nil 20 28 29 37) 0
|
||
|
"Header A"))
|
||
|
(ttl-B (rst-Ttl--new ado-A '(39 56 nil nil 39 47 48 56) 0
|
||
|
"Header B"))
|
||
|
(ado-Ba (rst-Ado-new-simple ?-))
|
||
|
(ttl-Ba (rst-Ttl--new ado-Ba '(58 85 nil nil 58 71 72 85) 0
|
||
|
"Subheader B.a"))
|
||
|
(ado-Ba1 (rst-Ado-new-simple ?~))
|
||
|
(ttl-Ba1 (rst-Ttl--new ado-Ba1 '(87 124 nil nil 87 105 106 124) 0
|
||
|
"SubSubheader B.a.1"))
|
||
|
(ttl-Bb (rst-Ttl--new ado-Ba '(126 153 nil nil 126 139 140 153) 0
|
||
|
"Subheader B.b"))
|
||
|
(ttl-C (rst-Ttl--new ado-A '(155 172 nil nil 155 163 164 172) 0
|
||
|
"Header C"))
|
||
|
(ttl-Ca nil)
|
||
|
(ttl-Ca1 (rst-Ttl--new ado-Ba1 '(164 211 nil nil 164 192 193 211) 0
|
||
|
"Missing node C.a.1")))
|
||
|
(let* ((stn-Ca (rst-Stn-new
|
||
|
ttl-Ca 2
|
||
|
(list (rst-Stn-new ttl-Ca1 3 nil))))
|
||
|
(stn-C (rst-Stn-new
|
||
|
ttl-C 1
|
||
|
(list stn-Ca)))
|
||
|
(stn-A (rst-Stn-new ttl-A 1 nil))
|
||
|
(stn-Ba (rst-Stn-new
|
||
|
ttl-Ba 2
|
||
|
(list (rst-Stn-new ttl-Ba1 3 nil))))
|
||
|
(stn-Bb (rst-Stn-new ttl-Bb 2 nil))
|
||
|
(stn-B (rst-Stn-new
|
||
|
ttl-B 1
|
||
|
(list stn-Ba
|
||
|
stn-Bb)))
|
||
|
(stn-T (rst-Stn-new
|
||
|
ttl-T 0
|
||
|
(list stn-A
|
||
|
stn-B
|
||
|
stn-C))))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-stn-containing-point (rst-all-stn))
|
||
|
"\^@"
|
||
|
t
|
||
|
nil
|
||
|
))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-stn-containing-point (rst-all-stn))
|
||
|
(concat "\^@" title)
|
||
|
t
|
||
|
nil
|
||
|
))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-stn-containing-point (rst-all-stn))
|
||
|
(concat title "\^@")
|
||
|
t
|
||
|
(rst-Stn-new ttl-T 0 nil)
|
||
|
))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-stn-containing-point (rst-all-stn))
|
||
|
(concat title "\^@Header A
|
||
|
========
|
||
|
|
||
|
Header B
|
||
|
========
|
||
|
|
||
|
Subheader B.a
|
||
|
-------------
|
||
|
|
||
|
SubSubheader B.a.1
|
||
|
~~~~~~~~~~~~~~~~~~
|
||
|
|
||
|
Subheader B.b
|
||
|
-------------
|
||
|
|
||
|
Header C
|
||
|
========")
|
||
|
t
|
||
|
stn-A
|
||
|
))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-stn-containing-point (rst-all-stn))
|
||
|
(concat title "Header A
|
||
|
========
|
||
|
|
||
|
Header B
|
||
|
========
|
||
|
\^@
|
||
|
Subheader B.a
|
||
|
-------------
|
||
|
|
||
|
SubSubheader B.a.1
|
||
|
~~~~~~~~~~~~~~~~~~
|
||
|
|
||
|
Subheader B.b
|
||
|
-------------
|
||
|
|
||
|
Header C
|
||
|
========")
|
||
|
t
|
||
|
stn-B
|
||
|
))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-stn-containing-point (rst-all-stn))
|
||
|
(concat title "Header A
|
||
|
========
|
||
|
|
||
|
Header B
|
||
|
========
|
||
|
|
||
|
Subheader B.a\^@
|
||
|
-------------
|
||
|
|
||
|
SubSubheader B.a.1
|
||
|
~~~~~~~~~~~~~~~~~~
|
||
|
|
||
|
Subheader B.b
|
||
|
-------------
|
||
|
|
||
|
Header C
|
||
|
========")
|
||
|
t
|
||
|
stn-Ba
|
||
|
))
|
||
|
(should (ert-equal-buffer-return
|
||
|
'(rst-stn-containing-point (rst-all-stn))
|
||
|
(concat title "Header A
|
||
|
========
|
||
|
|
||
|
Header B
|
||
|
========
|
||
|
|
||
|
Subheader B.a
|
||
|
-------------
|
||
|
|
||
|
SubSubheader B.a.1
|
||
|
~~~~~~~~~~~~~~~~~~
|
||
|
|
||
|
S\^@ubheader B.b
|
||
|
-------------
|
||
|
|
||
|
Header C
|
||
|
========")
|
||
|
t
|
||
|
stn-Bb
|
||
|
))
|
||
|
)))
|