|
@@ -24,11 +24,18 @@
|
|
|
(unless (featurep 'org-element)
|
|
|
(signal 'missing-test-dependency "org-element"))
|
|
|
|
|
|
+(defun org-test-parse-and-interpret (text)
|
|
|
+ "Parse TEXT as Org syntax and interpret it.
|
|
|
+Return interpreted string."
|
|
|
+ (with-temp-buffer
|
|
|
+ (org-mode)
|
|
|
+ (insert text)
|
|
|
+ (org-element-interpret-data (org-element-parse-buffer))))
|
|
|
+
|
|
|
|
|
|
|
|
|
;;; Tests:
|
|
|
|
|
|
-
|
|
|
|
|
|
;;;; Headlines
|
|
|
|
|
@@ -405,20 +412,383 @@ Paragraph \\alpha."
|
|
|
'(org-data nil (paragraph (:caption (("long") "short")) "Paragraph")))
|
|
|
"#+CAPTION[short]: long\nParagraph\n")))
|
|
|
|
|
|
-(ert-deftest test-org-element/interpret-elements ()
|
|
|
- "Test interpretation of elements and objects."
|
|
|
- (let ((parse-and-interpret
|
|
|
- (function
|
|
|
- ;; Parse TEXT string in an Org buffer and transcode it back
|
|
|
- ;; to Org syntax.
|
|
|
- (lambda (text)
|
|
|
- (with-temp-buffer
|
|
|
- (org-mode)
|
|
|
- (insert text)
|
|
|
- (org-element-interpret-data (org-element-parse-buffer)))))))
|
|
|
- ;; Verse blocks.
|
|
|
- (equal (funcall parse-and-interpret "#+BEGIN_VERSE\nTest\n#+END_VERSE")
|
|
|
- "#+BEGIN_VERSE\nTest\n#+END_VERSE\n")))
|
|
|
+(ert-deftest test-org-element/center-block-interpreter ()
|
|
|
+ "Test center block interpreter."
|
|
|
+ (should
|
|
|
+ (equal (org-test-parse-and-interpret "#+BEGIN_CENTER\nTest\n#+END_CENTER")
|
|
|
+ "#+BEGIN_CENTER\nTest\n#+END_CENTER\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/drawer-interpreter ()
|
|
|
+ "Test drawer interpreter."
|
|
|
+ (should
|
|
|
+ (equal (let ((org-drawers '("TEST")))
|
|
|
+ (org-test-parse-and-interpret ":TEST:\nTest\n:END:"))
|
|
|
+ ":TEST:\nTest\n:END:\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/dynamic-block-interpreter ()
|
|
|
+ "Test dynamic block interpreter."
|
|
|
+ (should
|
|
|
+ (equal (org-test-parse-and-interpret
|
|
|
+ "#+BEGIN: myblock :parameter value1\nTest\n#+END:")
|
|
|
+ "#+BEGIN: myblock :parameter value1\nTest\n#+END:\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/footnote-definition-interpreter ()
|
|
|
+ "Test footnote definition interpreter."
|
|
|
+ (should (equal (org-test-parse-and-interpret "[fn:1] Test") "[fn:1] Test\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/headline-interpreter ()
|
|
|
+ "Test headline and section interpreters."
|
|
|
+ ;; 1. Standard test.
|
|
|
+ (should (equal (org-test-parse-and-interpret "* Headline") "* Headline\n"))
|
|
|
+ ;; 2. With TODO keywords.
|
|
|
+ (should
|
|
|
+ (equal (let ((org-todo-keywords '((sequence "TODO" "DONE"))))
|
|
|
+ (org-test-parse-and-interpret "* TODO Headline"))
|
|
|
+ "* TODO Headline\n"))
|
|
|
+ ;; 3. With tags...
|
|
|
+ ;;
|
|
|
+ ;; 3.1. ... and a positive `org-tags-column' value.
|
|
|
+ (should
|
|
|
+ (equal (let ((org-tags-column 20))
|
|
|
+ (org-test-parse-and-interpret "* Headline :tag:"))
|
|
|
+ "* Headline :tag:\n"))
|
|
|
+ ;; 3.2. ... and a negative `org-tags-column' value.
|
|
|
+ (should
|
|
|
+ (equal (let ((org-tags-column -20))
|
|
|
+ (org-test-parse-and-interpret "* Headline :tag:"))
|
|
|
+ "* Headline :tag:\n"))
|
|
|
+ ;; 3.3. ... and a null `org-tags-column' value.
|
|
|
+ (should
|
|
|
+ (equal (let ((org-tags-column 0))
|
|
|
+ (org-test-parse-and-interpret "* Headline :tag:"))
|
|
|
+ "* Headline :tag:\n"))
|
|
|
+ ;; 4. With priority cookie.
|
|
|
+ (should
|
|
|
+ (equal (org-test-parse-and-interpret "* [#B] Headline")
|
|
|
+ "* [#B] Headline\n"))
|
|
|
+ ;; 5. With comment keyword.
|
|
|
+ (should
|
|
|
+ (equal (let ((org-comment-string "COMMENT"))
|
|
|
+ (org-test-parse-and-interpret "* COMMENT Headline"))
|
|
|
+ "* COMMENT Headline\n"))
|
|
|
+ ;; 6. With quote section.
|
|
|
+ (should
|
|
|
+ (equal (let ((org-quote-string "QUOTE"))
|
|
|
+ (org-test-parse-and-interpret "* QUOTE Headline"))
|
|
|
+ "* QUOTE Headline\n"))
|
|
|
+ ;; 7. Keep same number of blank lines before body.
|
|
|
+ (should
|
|
|
+ (equal (org-test-parse-and-interpret
|
|
|
+ "* Headline\n\n\nText after two blank lines.")
|
|
|
+ "* Headline\n\n\nText after two blank lines.\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/inlinetask-interpreter ()
|
|
|
+ "Test inlinetask interpretation."
|
|
|
+ (when (featurep 'org-inlinetask)
|
|
|
+ (let ((org-inlinetask-min-level 15))
|
|
|
+ ;; 1. Regular inlinetask.
|
|
|
+ (should (equal (org-test-parse-and-interpret
|
|
|
+ "*************** Task\nTest\n*************** END")
|
|
|
+ "*************** Task\nTest\n*************** END\n"))
|
|
|
+ ;; 2. Degenerate inlinetask.
|
|
|
+ (should (equal (org-test-parse-and-interpret "*************** Task")
|
|
|
+ "*************** Task\n"))
|
|
|
+ ;; 3. Prefer degenerate form when there are no contents.
|
|
|
+ (should (equal (org-test-parse-and-interpret
|
|
|
+ "*************** Task\n*************** END")
|
|
|
+ "*************** Task\n"))
|
|
|
+ ;; 4. With TODO keywords.
|
|
|
+ (should
|
|
|
+ (equal (let ((org-todo-keywords '((sequence "TODO" "DONE"))))
|
|
|
+ (org-test-parse-and-interpret "*************** TODO Task"))
|
|
|
+ "*************** TODO Task\n"))
|
|
|
+ ;; 5. With tags...
|
|
|
+ ;;
|
|
|
+ ;; 5.1. ... and a positive `org-tags-column' value.
|
|
|
+ (should
|
|
|
+ (equal (let ((org-tags-column 30))
|
|
|
+ (org-test-parse-and-interpret "*************** Task :tag:"))
|
|
|
+ "*************** Task :tag:\n"))
|
|
|
+ ;; 5.2. ... and a negative `org-tags-column' value.
|
|
|
+ (should
|
|
|
+ (equal (let ((org-tags-column -30))
|
|
|
+ (org-test-parse-and-interpret "*************** Task :tag:"))
|
|
|
+ "*************** Task :tag:\n"))
|
|
|
+ ;; 5.3. ... and a null `org-tags-column' value.
|
|
|
+ (should
|
|
|
+ (equal (let ((org-tags-column 0))
|
|
|
+ (org-test-parse-and-interpret "*************** Task :tag:"))
|
|
|
+ "*************** Task :tag:\n"))
|
|
|
+ ;; 6. With priority cookie.
|
|
|
+ (should
|
|
|
+ (equal (org-test-parse-and-interpret "*************** [#B] Task")
|
|
|
+ "*************** [#B] Task\n")))))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/plain-list-interpreter ()
|
|
|
+ "Test plain-list and item interpreters."
|
|
|
+ ;; 1. Unordered list.
|
|
|
+ (should (equal (org-test-parse-and-interpret "- item 1") "- item 1\n"))
|
|
|
+ ;; 2. Description list.
|
|
|
+ (should
|
|
|
+ (equal (org-test-parse-and-interpret "- tag :: desc") "- tag :: desc\n"))
|
|
|
+ ;; 3. Ordered list.
|
|
|
+ (should
|
|
|
+ (equal (let ((org-plain-list-ordered-item-terminator t))
|
|
|
+ (org-test-parse-and-interpret "1. Item"))
|
|
|
+ "1. Item\n"))
|
|
|
+ ;; 4. Ordered list with counter.
|
|
|
+ (should
|
|
|
+ (equal (let ((org-plain-list-ordered-item-terminator t))
|
|
|
+ (org-test-parse-and-interpret "1. [@5] Item"))
|
|
|
+ "5. [@5] Item\n"))
|
|
|
+ ;; 5. List with check-boxes.
|
|
|
+ (should
|
|
|
+ (equal (org-test-parse-and-interpret
|
|
|
+ "- [-] Item 1\n - [X] Item 2\n - [ ] Item 3")
|
|
|
+ "- [-] Item 1\n - [X] Item 2\n - [ ] Item 3\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/quote-block-interpreter ()
|
|
|
+ "Test quote block interpreter."
|
|
|
+ (should (equal (org-test-parse-and-interpret
|
|
|
+ "#+BEGIN_QUOTE\nTest\n#+END_QUOTE")
|
|
|
+ "#+BEGIN_QUOTE\nTest\n#+END_QUOTE\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/special-block-interpreter ()
|
|
|
+ "Test special block interpreter."
|
|
|
+ (should (equal (org-test-parse-and-interpret
|
|
|
+ "#+BEGIN_SPECIAL\nTest\n#+END_SPECIAL")
|
|
|
+ "#+BEGIN_SPECIAL\nTest\n#+END_SPECIAL\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/babel-call-interpreter ()
|
|
|
+ "Test babel call interpreter."
|
|
|
+ ;; 1. Without argument.
|
|
|
+ (should (equal (org-test-parse-and-interpret "#+CALL: test()")
|
|
|
+ "#+CALL: test()\n"))
|
|
|
+ ;; 2. With argument.
|
|
|
+ (should (equal (org-test-parse-and-interpret "#+CALL: test(x=2)")
|
|
|
+ "#+CALL: test(x=2)\n"))
|
|
|
+ ;; 3. With header arguments.
|
|
|
+ (should (equal (org-test-parse-and-interpret
|
|
|
+ "#+CALL: test[:results output]()[:results html]")
|
|
|
+ "#+CALL: test[:results output]()[:results html]\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/comment-interpreter ()
|
|
|
+ "Test comment interpreter."
|
|
|
+ ;; Regular comment.
|
|
|
+ (should (equal (org-test-parse-and-interpret "#Comment") "#Comment\n"))
|
|
|
+ ;; Inline comment.
|
|
|
+ (should (equal (org-test-parse-and-interpret " #+ Comment")
|
|
|
+ " #+ Comment\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/comment-block-interpreter ()
|
|
|
+ "Test comment block interpreter."
|
|
|
+ (should (equal (org-test-parse-and-interpret
|
|
|
+ "#+BEGIN_COMMENT\nTest\n#+END_COMMENT")
|
|
|
+ "#+BEGIN_COMMENT\nTest\n#+END_COMMENT\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/example-block-interpreter ()
|
|
|
+ "Test example block interpreter."
|
|
|
+ (should (equal (org-test-parse-and-interpret
|
|
|
+ "#+BEGIN_EXAMPLE\nTest\n#+END_EXAMPLE")
|
|
|
+ "#+BEGIN_EXAMPLE\nTest\n#+END_EXAMPLE\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/export-block-interpreter ()
|
|
|
+ "Test export block interpreter."
|
|
|
+ (should (equal (org-test-parse-and-interpret
|
|
|
+ "#+BEGIN_HTML\nTest\n#+END_HTML")
|
|
|
+ "#+BEGIN_HTML\nTest\n#+END_HTML\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/fixed-width-interpreter ()
|
|
|
+ "Test fixed width interpreter."
|
|
|
+ (should (equal (org-test-parse-and-interpret ": Test") ": Test\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/horizontal-rule-interpreter ()
|
|
|
+ "Test horizontal rule interpreter."
|
|
|
+ (should (equal (org-test-parse-and-interpret "-------") "-----\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/keyword-interpreter ()
|
|
|
+ "Test keyword interpreter."
|
|
|
+ (should (equal (org-test-parse-and-interpret "#+KEYWORD: value")
|
|
|
+ "#+KEYWORD: value\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/latex-environment-interpreter ()
|
|
|
+ "Test latex environment interpreter."
|
|
|
+ (should (equal (org-test-parse-and-interpret
|
|
|
+ "\begin{equation}\n1+1=2\n\end{equation}")
|
|
|
+ "\begin{equation}\n1+1=2\n\end{equation}\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/property-drawer-interpreter ()
|
|
|
+ "Test property drawer interpreter."
|
|
|
+ (should (equal (let ((org-property-format "%-10s %s"))
|
|
|
+ (org-test-parse-and-interpret
|
|
|
+ ":PROPERTIES:\n:prop: value\n:END:"))
|
|
|
+ ":PROPERTIES:\n:prop: value\n:END:\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/src-block-interpreter ()
|
|
|
+ "Test src block interpreter."
|
|
|
+ (should
|
|
|
+ (equal (org-test-parse-and-interpret
|
|
|
+ "#+BEGIN_SRC emacs-lisp :results silent\n(+ 1 1)\n#+END_SRC")
|
|
|
+ "#+BEGIN_SRC emacs-lisp :results silent\n(+ 1 1)\n#+END_SRC\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/table-interpreter ()
|
|
|
+ "Test table, table-row and table-cell interpreters."
|
|
|
+ ;; 1. Simple table.
|
|
|
+ (should (equal (org-test-parse-and-interpret "| a | b |\n| c | d |")
|
|
|
+ "| a | b |\n| c | d |\n"))
|
|
|
+ ;; 2. Table with horizontal rules.
|
|
|
+ (should (equal (org-test-parse-and-interpret
|
|
|
+ "| a | b |\n|---+---|\n| c | d |")
|
|
|
+ "| a | b |\n|---+---|\n| c | d |\n"))
|
|
|
+ ;; 3. Table with meta-data.
|
|
|
+ (should (equal (org-test-parse-and-interpret "| / | < | > |\n| * | 1 | 2 |")
|
|
|
+ "| / | < | > |\n| * | 1 | 2 |\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/verse-block-interpreter ()
|
|
|
+ "Test verse block interpretation."
|
|
|
+ (should
|
|
|
+ (equal (org-test-parse-and-interpret "#+BEGIN_VERSE\nTest\n#+END_VERSE")
|
|
|
+ "#+BEGIN_VERSE\nTest\n#+END_VERSE\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/entity-interpreter ()
|
|
|
+ "Test entity interpreter."
|
|
|
+ ;; 1. Without brackets.
|
|
|
+ (should
|
|
|
+ (equal (org-test-parse-and-interpret "\\alpha text") "\\alpha text\n"))
|
|
|
+ ;; 2. With brackets.
|
|
|
+ (should
|
|
|
+ (equal (org-test-parse-and-interpret "\\alpha{}text") "\\alpha{}text\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/export-snippet-interpreter ()
|
|
|
+ "Test export snippet interpreter."
|
|
|
+ (should (equal (org-test-parse-and-interpret "@back-end{test}")
|
|
|
+ "@back-end{test}\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/footnote-reference-interpreter ()
|
|
|
+ "Test footnote reference interpreter."
|
|
|
+ ;; 1. Regular reference.
|
|
|
+ (should (equal (org-test-parse-and-interpret "Text[fn:1]") "Text[fn:1]\n"))
|
|
|
+ ;; 2. Normalized reference.
|
|
|
+ (should (equal (org-test-parse-and-interpret "Text[1]") "Text[1]\n"))
|
|
|
+ ;; 3. Named reference.
|
|
|
+ (should (equal (org-test-parse-and-interpret "Text[fn:label]")
|
|
|
+ "Text[fn:label]\n"))
|
|
|
+ ;; 4. Inline reference.
|
|
|
+ (should (equal (org-test-parse-and-interpret "Text[fn:label:def]")
|
|
|
+ "Text[fn:label:def]\n"))
|
|
|
+ ;; 5. Anonymous reference.
|
|
|
+ (should (equal (org-test-parse-and-interpret "Text[fn::def]")
|
|
|
+ "Text[fn::def]\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/inline-babel-call-interpreter ()
|
|
|
+ "Test inline babel call interpreter."
|
|
|
+ ;; 1. Without arguments.
|
|
|
+ (should (equal (org-test-parse-and-interpret "call_test()") "call_test()\n"))
|
|
|
+ ;; 2. With arguments.
|
|
|
+ (should (equal (org-test-parse-and-interpret "call_test(x=2)")
|
|
|
+ "call_test(x=2)\n"))
|
|
|
+ ;; 3. With header arguments.
|
|
|
+ (should (equal (org-test-parse-and-interpret
|
|
|
+ "call_test[:results output]()[:results html]")
|
|
|
+ "call_test[:results output]()[:results html]\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/inline-src-block-interpreter ()
|
|
|
+ "Test inline src block interpreter."
|
|
|
+ ;; 1. Without header argument.
|
|
|
+ (should (equal (org-test-parse-and-interpret "src_emacs-lisp{(+ 1 1)}")
|
|
|
+ "src_emacs-lisp{(+ 1 1)}\n"))
|
|
|
+ ;; 2. With header arguments.
|
|
|
+ (should (equal (org-test-parse-and-interpret
|
|
|
+ "src_emacs-lisp[:results silent]{(+ 1 1)}")
|
|
|
+ "src_emacs-lisp[:results silent]{(+ 1 1)}\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/latex-fragment-interpreter ()
|
|
|
+ "Test latex fragment interpreter."
|
|
|
+ (let ((org-latex-regexps
|
|
|
+ '(("begin" "^[ ]*\\(\\\\begin{\\([a-zA-Z0-9\\*]+\\)[^ ]+?\\\\end{\\2}\\)" 1 t)
|
|
|
+ ("$1" "\\([^$]\\|^\\)\\(\\$[^
\n,;.$]\\$\\)\\([- .,?;:'\") ]\\|$\\)" 2 nil)
|
|
|
+ ("$" "\\([^$]\\|^\\)\\(\\(\\$\\([^
\n,;.$][^$\n
]*?\\(\n[^$\n
]*?\\)\\{0,2\\}[^
\n,.$]\\)\\$\\)\\)\\([- .,?;:'\") ]\\|$\\)" 2 nil)
|
|
|
+ ("\\(" "\\\\([^ ]*?\\\\)" 0 nil)
|
|
|
+ ("\\[" "\\\\\\[[^ ]*?\\\\\\]" 0 nil)
|
|
|
+ ("$$" "\\$\\$[^ ]*?\\$\\$" 0 nil))))
|
|
|
+ (should (equal (org-test-parse-and-interpret "\\command{}")
|
|
|
+ "\\command{}\n"))
|
|
|
+ (should (equal (org-test-parse-and-interpret "$x$") "$x$\n"))
|
|
|
+ (should (equal (org-test-parse-and-interpret "$x+y$") "$x+y$\n"))
|
|
|
+ (should (equal (org-test-parse-and-interpret "$$x+y$$") "$$x+y$$\n"))
|
|
|
+ (should (equal (org-test-parse-and-interpret "\\(x+y\\)") "\\(x+y\\)\n"))
|
|
|
+ (should (equal (org-test-parse-and-interpret "\\[x+y\\]") "\\[x+y\\]\n"))))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/line-break-interpreter ()
|
|
|
+ "Test line break interpreter."
|
|
|
+ (should (equal (org-test-parse-and-interpret "First line \\\\ \nSecond line")
|
|
|
+ "First line \\\\\nSecond line\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/link-interpreter ()
|
|
|
+ "Test link interpreter."
|
|
|
+ ;; 1. Links targeted from a radio target.
|
|
|
+ (should (equal (let ((org-target-link-regexp "radio-target"))
|
|
|
+ (org-test-parse-and-interpret "a radio-target"))
|
|
|
+ "a radio-target\n"))
|
|
|
+ ;; 2. Regular links.
|
|
|
+ ;;
|
|
|
+ ;; 2.1. Without description.
|
|
|
+ (should (equal (org-test-parse-and-interpret "[[http://orgmode.org]]")
|
|
|
+ "[[http://orgmode.org]]\n"))
|
|
|
+ ;; 2.2. With a description.
|
|
|
+ (should (equal (org-test-parse-and-interpret
|
|
|
+ "[[http://orgmode.org][Org mode]]")
|
|
|
+ "[[http://orgmode.org][Org mode]]\n"))
|
|
|
+ ;; 2.3. Id links.
|
|
|
+ (should (equal (org-test-parse-and-interpret "[[id:aaaa]]") "[[id:aaaa]]\n"))
|
|
|
+ ;; 2.4. Custom-id links.
|
|
|
+ (should (equal (org-test-parse-and-interpret "[[#id]]") "[[#id]]\n"))
|
|
|
+ ;; 2.5 Code-ref links.
|
|
|
+ (should (equal (org-test-parse-and-interpret "[[(ref)]]") "[[(ref)]]\n"))
|
|
|
+ ;; 3. Normalize plain links.
|
|
|
+ (should (equal (org-test-parse-and-interpret "http://orgmode.org")
|
|
|
+ "[[http://orgmode.org]]\n"))
|
|
|
+ ;; 4. Normalize angular links.
|
|
|
+ (should (equal (org-test-parse-and-interpret "<http://orgmode.org>")
|
|
|
+ "[[http://orgmode.org]]\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/macro-interpreter ()
|
|
|
+ "Test macro interpreter."
|
|
|
+ ;; 1. Without argument.
|
|
|
+ (should (equal (org-test-parse-and-interpret "{{{test}}}") "{{{test}}}\n"))
|
|
|
+ ;; 2. With arguments.
|
|
|
+ (should (equal (org-test-parse-and-interpret "{{{test(arg1,arg2)}}}")
|
|
|
+ "{{{test(arg1,arg2)}}}\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/radio-target-interpreter ()
|
|
|
+ "Test radio target interpreter."
|
|
|
+ (should (equal (org-test-parse-and-interpret "<<<some text>>>")
|
|
|
+ "<<<some text>>>\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/statistics-cookie-interpreter ()
|
|
|
+ "Test statistics cookie interpreter."
|
|
|
+ ;; 1. Without percent
|
|
|
+ (should (equal (org-test-parse-and-interpret "[0/1]") "[0/1]\n"))
|
|
|
+ ;; 2. With percent.
|
|
|
+ (should (equal (org-test-parse-and-interpret "[66%]") "[66%]\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/subscript-interpreter ()
|
|
|
+ "Test subscript interpreter."
|
|
|
+ ;; 1. Without brackets.
|
|
|
+ (should (equal (org-test-parse-and-interpret "a_b") "a_b\n"))
|
|
|
+ ;; 2. With brackets.
|
|
|
+ (should (equal (org-test-parse-and-interpret "a_{b}") "a_{b}\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/superscript-interpreter ()
|
|
|
+ "Test superscript interpreter."
|
|
|
+ ;; 1. Without brackets.
|
|
|
+ (should (equal (org-test-parse-and-interpret "a^b") "a^b\n"))
|
|
|
+ ;; 2. With brackets.
|
|
|
+ (should (equal (org-test-parse-and-interpret "a^{b}") "a^{b}\n")))
|
|
|
+
|
|
|
+(ert-deftest test-org-element/target-interpreter ()
|
|
|
+ "Test target interpreter."
|
|
|
+ (should (equal (org-test-parse-and-interpret "<<target>>") "<<target>>\n")))
|
|
|
|
|
|
|
|
|
|