2018-06-15 03:31:54 +02:00
|
|
|
;; -*- no-byte-compile: t; -*-
|
|
|
|
;;; lang/org/test/test-autoload-org.el
|
|
|
|
|
|
|
|
(describe "lang/org"
|
|
|
|
;; `+org/insert-item'
|
|
|
|
(describe "insert-item"
|
|
|
|
(before-all
|
|
|
|
(require 'org)
|
|
|
|
(load! "../autoload/org.el"))
|
|
|
|
(after-all
|
|
|
|
(unload-feature 'org t))
|
|
|
|
|
|
|
|
(before-each
|
|
|
|
(set-buffer (get-buffer-create "org"))
|
|
|
|
(erase-buffer)
|
|
|
|
(delay-mode-hooks (org-mode)))
|
|
|
|
(after-each
|
|
|
|
(kill-buffer (get-buffer "org")))
|
|
|
|
|
|
|
|
(describe "headlines"
|
2019-11-12 16:15:42 -05:00
|
|
|
(it "opens new headline below"
|
2019-09-03 00:41:03 -04:00
|
|
|
(insert!! "* {0}Header")
|
2019-06-29 01:38:14 +02:00
|
|
|
(+org/insert-item-below 1)
|
2018-06-15 03:31:54 +02:00
|
|
|
(expect (eobp))
|
|
|
|
(expect (buffer-substring-no-properties (point-min) (point-max))
|
2019-11-12 16:15:42 -05:00
|
|
|
:to-equal "* Header\n* "))
|
2018-06-15 03:31:54 +02:00
|
|
|
|
2019-11-12 16:15:42 -05:00
|
|
|
(it "opens new headline above"
|
|
|
|
(insert!! "* {0}Header")
|
2019-06-29 01:38:14 +02:00
|
|
|
(+org/insert-item-above 1)
|
2018-06-15 03:31:54 +02:00
|
|
|
(expect (eolp))
|
|
|
|
(expect (buffer-substring-no-properties (point-min) (point-max))
|
2019-11-12 16:15:42 -05:00
|
|
|
:to-equal "* \n* Header"))
|
2018-06-15 03:31:54 +02:00
|
|
|
|
|
|
|
(it "appends headlines, skipping subtrees"
|
2019-09-03 00:41:03 -04:00
|
|
|
(insert!! "** {0}First\n"
|
2018-06-15 03:31:54 +02:00
|
|
|
"*** sub 1\n"
|
|
|
|
"*** sub 2\n"
|
|
|
|
"**** subsub 1\n"
|
|
|
|
"** Header")
|
2019-06-29 01:38:14 +02:00
|
|
|
(+org/insert-item-below 1)
|
2018-06-15 03:31:54 +02:00
|
|
|
(expect (eolp))
|
|
|
|
(expect (line-number-at-pos) :to-be 5)
|
|
|
|
(expect (buffer-substring-no-properties (point-min) (point-max))
|
|
|
|
:to-equal
|
|
|
|
(string-join '("** First"
|
|
|
|
"*** sub 1"
|
|
|
|
"*** sub 2"
|
|
|
|
"**** subsub 1"
|
|
|
|
"** "
|
|
|
|
"** Header")
|
|
|
|
"\n")))
|
|
|
|
(it "prepends headlines, skipping subtrees"
|
2019-09-03 00:41:03 -04:00
|
|
|
(insert!! "** First\n"
|
2018-06-15 03:31:54 +02:00
|
|
|
"*** sub 1\n"
|
|
|
|
"*** sub 2\n"
|
|
|
|
"**** {0}subsub 1\n"
|
|
|
|
"** Header")
|
2019-06-29 01:38:14 +02:00
|
|
|
(+org/insert-item-above 1)
|
2018-06-15 03:31:54 +02:00
|
|
|
(expect (eolp))
|
|
|
|
(expect (line-number-at-pos) :to-be 4)
|
|
|
|
(expect (buffer-substring-no-properties (point-min) (point-max))
|
|
|
|
:to-equal
|
|
|
|
(string-join '("** First"
|
|
|
|
"*** sub 1"
|
|
|
|
"*** sub 2"
|
|
|
|
"**** "
|
|
|
|
"**** subsub 1"
|
|
|
|
"** Header")
|
|
|
|
"\n"))))
|
|
|
|
|
|
|
|
(describe "plain lists"
|
|
|
|
(it "appends items"
|
2019-09-03 00:41:03 -04:00
|
|
|
(insert!! "+ {0}List item")
|
2019-06-29 01:38:14 +02:00
|
|
|
(+org/insert-item-below 1)
|
2018-06-15 03:31:54 +02:00
|
|
|
(expect (buffer-substring-no-properties (point-min) (point-max))
|
|
|
|
:to-equal "+ List item\n+ "))
|
|
|
|
(it "prepends items"
|
2019-09-03 00:41:03 -04:00
|
|
|
(insert!! "+ {0}List item")
|
2019-06-29 01:38:14 +02:00
|
|
|
(+org/insert-item-above 1)
|
2018-06-15 03:31:54 +02:00
|
|
|
(expect (buffer-substring-no-properties (point-min) (point-max))
|
|
|
|
:to-equal "+ \n+ List item"))
|
|
|
|
|
|
|
|
(it "appends items, but skips over child items"
|
2019-09-03 00:41:03 -04:00
|
|
|
(insert!! "+ {0}List item\n"
|
2018-06-15 03:31:54 +02:00
|
|
|
" + Sub item\n"
|
|
|
|
"+ List item")
|
2019-06-29 01:38:14 +02:00
|
|
|
(+org/insert-item-below 1)
|
2018-06-15 03:31:54 +02:00
|
|
|
(expect (buffer-substring-no-properties (point-min) (point-max))
|
|
|
|
:to-equal
|
|
|
|
(string-join '("+ List item"
|
|
|
|
" + Sub item"
|
|
|
|
"+ "
|
|
|
|
"+ List item")
|
|
|
|
"\n")))
|
|
|
|
(it "prepends items, but skips over child items"
|
2019-09-03 00:41:03 -04:00
|
|
|
(insert!! "+ List item\n"
|
2018-06-15 03:31:54 +02:00
|
|
|
" + Sub item\n"
|
|
|
|
"+ {0}List item")
|
2019-06-29 01:38:14 +02:00
|
|
|
(+org/insert-item-above 1)
|
2018-06-15 03:31:54 +02:00
|
|
|
(expect (buffer-substring-no-properties (point-min) (point-max))
|
|
|
|
:to-equal
|
|
|
|
(string-join '("+ List item"
|
|
|
|
" + Sub item"
|
|
|
|
"+ "
|
|
|
|
"+ List item")
|
|
|
|
"\n"))))
|
|
|
|
|
|
|
|
(describe "numbered lists"
|
|
|
|
(it "appends items and updates numbers"
|
2019-09-03 00:41:03 -04:00
|
|
|
(insert!! "1. {0}List item\n"
|
2018-06-15 03:31:54 +02:00
|
|
|
"2. Sub item\n"
|
|
|
|
"3. List item")
|
2019-06-29 01:38:14 +02:00
|
|
|
(+org/insert-item-below 1)
|
2018-06-15 03:31:54 +02:00
|
|
|
(expect (buffer-substring-no-properties (point-min) (point-max))
|
|
|
|
:to-equal
|
|
|
|
(string-join '("1. List item"
|
|
|
|
"2. "
|
|
|
|
"3. Sub item"
|
|
|
|
"4. List item")
|
|
|
|
"\n")))
|
|
|
|
(it "prepends items and updates numbers"
|
2019-09-03 00:41:03 -04:00
|
|
|
(insert!! "1. List item\n"
|
2018-06-15 03:31:54 +02:00
|
|
|
"2. Sub item\n"
|
|
|
|
"3. {0}List item")
|
2019-06-29 01:38:14 +02:00
|
|
|
(+org/insert-item-above 1)
|
2018-06-15 03:31:54 +02:00
|
|
|
(expect (buffer-substring-no-properties (point-min) (point-max))
|
|
|
|
:to-equal
|
|
|
|
(string-join '("1. List item"
|
|
|
|
"2. Sub item"
|
|
|
|
"3. "
|
|
|
|
"4. List item")
|
|
|
|
"\n"))))))
|