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.
278 lines
5.5 KiB
278 lines
5.5 KiB
;; 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 |
|
)) |
|
)))
|
|
|