|
@@ -571,6 +571,104 @@ body\n")))
|
|
(org-export-get-caption (org-element-at-point))))))
|
|
(org-export-get-caption (org-element-at-point))))))
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
+;;; Back-end Definition
|
|
|
|
+
|
|
|
|
+(ert-deftest test-org-export/define-backend ()
|
|
|
|
+ "Test back-end definition and accessors."
|
|
|
|
+ ;; Translate table.
|
|
|
|
+ (should
|
|
|
|
+ (equal '((headline . my-headline-test))
|
|
|
|
+ (let (org-export-registered-backends)
|
|
|
|
+ (org-export-define-backend test ((headline . my-headline-test)))
|
|
|
|
+ (org-export-backend-translate-table 'test))))
|
|
|
|
+ ;; Filters.
|
|
|
|
+ (should
|
|
|
|
+ (equal '((:filter-headline . my-filter))
|
|
|
|
+ (let (org-export-registered-backends)
|
|
|
|
+ (org-export-define-backend test
|
|
|
|
+ ((headline . my-headline-test))
|
|
|
|
+ :filters-alist ((:filter-headline . my-filter)))
|
|
|
|
+ (org-export-backend-filters 'test))))
|
|
|
|
+ ;; Options.
|
|
|
|
+ (should
|
|
|
|
+ (equal '((:prop value))
|
|
|
|
+ (let (org-export-registered-backends)
|
|
|
|
+ (org-export-define-backend test
|
|
|
|
+ ((headline . my-headline-test))
|
|
|
|
+ :options-alist ((:prop value)))
|
|
|
|
+ (org-export-backend-options 'test))))
|
|
|
|
+ ;; Menu.
|
|
|
|
+ (should
|
|
|
|
+ (equal '(?k "Test Export" test)
|
|
|
|
+ (let (org-export-registered-backends)
|
|
|
|
+ (org-export-define-backend test
|
|
|
|
+ ((headline . my-headline-test))
|
|
|
|
+ :menu-entry (?k "Test Export" test))
|
|
|
|
+ (org-export-backend-menu 'test))))
|
|
|
|
+ ;; Export Blocks.
|
|
|
|
+ (should
|
|
|
|
+ (equal '(("TEST" . org-element-export-block-parser))
|
|
|
|
+ (let (org-export-registered-backends org-element-block-name-alist)
|
|
|
|
+ (org-export-define-backend test
|
|
|
|
+ ((headline . my-headline-test))
|
|
|
|
+ :export-block ("test"))
|
|
|
|
+ org-element-block-name-alist))))
|
|
|
|
+
|
|
|
|
+(ert-deftest test-org-export/define-derived-backend ()
|
|
|
|
+ "Test `org-export-define-derived-backend' specifications."
|
|
|
|
+ ;; Error when parent back-end is not defined.
|
|
|
|
+ (should-error
|
|
|
|
+ (let (org-export-registered-backends)
|
|
|
|
+ (org-export-define-derived-backend test parent)))
|
|
|
|
+ ;; Append translation table to parent's.
|
|
|
|
+ (should
|
|
|
|
+ (equal '((:headline . test) (:headline . parent))
|
|
|
|
+ (let (org-export-registered-backends)
|
|
|
|
+ (org-export-define-backend parent ((:headline . parent)))
|
|
|
|
+ (org-export-define-derived-backend test parent
|
|
|
|
+ :translate-alist ((:headline . test)))
|
|
|
|
+ (org-export-backend-translate-table 'test)))))
|
|
|
|
+
|
|
|
|
+(ert-deftest test-org-export/derived-backend-p ()
|
|
|
|
+ "Test `org-export-derived-backend-p' specifications."
|
|
|
|
+ ;; Non-nil with direct match.
|
|
|
|
+ (should
|
|
|
|
+ (let (org-export-registered-backends)
|
|
|
|
+ (org-export-define-backend test ((headline . test)))
|
|
|
|
+ (org-export-derived-backend-p 'test 'test)))
|
|
|
|
+ (should
|
|
|
|
+ (let (org-export-registered-backends)
|
|
|
|
+ (org-export-define-backend test ((headline . test)))
|
|
|
|
+ (org-export-define-derived-backend test2 test)
|
|
|
|
+ (org-export-derived-backend-p 'test2 'test2)))
|
|
|
|
+ ;; Non-nil with a direct parent.
|
|
|
|
+ (should
|
|
|
|
+ (let (org-export-registered-backends)
|
|
|
|
+ (org-export-define-backend test ((headline . test)))
|
|
|
|
+ (org-export-define-derived-backend test2 test)
|
|
|
|
+ (org-export-derived-backend-p 'test2 'test)))
|
|
|
|
+ ;; Non-nil with an indirect parent.
|
|
|
|
+ (should
|
|
|
|
+ (let (org-export-registered-backends)
|
|
|
|
+ (org-export-define-backend test ((headline . test)))
|
|
|
|
+ (org-export-define-derived-backend test2 test)
|
|
|
|
+ (org-export-define-derived-backend test3 test2)
|
|
|
|
+ (org-export-derived-backend-p 'test3 'test)))
|
|
|
|
+ ;; Nil otherwise.
|
|
|
|
+ (should-not
|
|
|
|
+ (let (org-export-registered-backends)
|
|
|
|
+ (org-export-define-backend test ((headline . test)))
|
|
|
|
+ (org-export-define-backend test2 ((headline . test2)))
|
|
|
|
+ (org-export-derived-backend-p 'test2 'test)))
|
|
|
|
+ (should-not
|
|
|
|
+ (let (org-export-registered-backends)
|
|
|
|
+ (org-export-define-backend test ((headline . test)))
|
|
|
|
+ (org-export-define-backend test2 ((headline . test2)))
|
|
|
|
+ (org-export-define-derived-backend test3 test2)
|
|
|
|
+ (org-export-derived-backend-p 'test3 'test))))
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
;;; Export Snippets
|
|
;;; Export Snippets
|
|
|
|
|