|
@@ -22,42 +22,19 @@
|
|
|
|
|
|
;;; Tests
|
|
|
(require 'org-html)
|
|
|
-(defvar test-org-html/export-link-alist
|
|
|
- '((:description "mailto: link"
|
|
|
- :link "[[mailto:john@example.tld]]"
|
|
|
- :expected "<a href=\"mailto:john@example.tld\">mailto:john@example.tld</a>"
|
|
|
- :opt-plist nil))
|
|
|
- "List of link definitions to test exporting for.
|
|
|
-Each cell is a property list that defines a link export test
|
|
|
-using the properties as follows:
|
|
|
|
|
|
-:description A string with a short description of the test. This
|
|
|
- is used as the doc-string of the created test.
|
|
|
-
|
|
|
-:link A string with the normalized Org mode link to test.
|
|
|
-
|
|
|
-:expected A string with the expected HTML markup.
|
|
|
-
|
|
|
-:opt-plist A property list with exporting options.")
|
|
|
-
|
|
|
-(defun test-org-html/export-link-factory ()
|
|
|
- "*Create tests for links defined in
|
|
|
- `test-org-html/export-link-alist'."
|
|
|
- (let ((count 0))
|
|
|
- (mapc
|
|
|
- (lambda (link)
|
|
|
- (eval
|
|
|
- `(ert-deftest ,(intern (format "test-org-html/export-link/%d" count)) ()
|
|
|
- ,(plist-get link :description)
|
|
|
- (should
|
|
|
- (string=
|
|
|
- ,(plist-get link :expected)
|
|
|
- (org-test-strip-text-props
|
|
|
- (org-html-handle-links ,(plist-get link :link) ,(plist-get link :opt-plist)))))))
|
|
|
- (setq count (1+ count))) test-org-html/export-link-alist)))
|
|
|
-
|
|
|
-;; Create tests for link export
|
|
|
-(test-org-html/export-link-factory)
|
|
|
+(defmacro org-test-html/export-link (name link expected &optional desc opt-plist)
|
|
|
+ `(ert-deftest ,(intern (concat "test-org-html/export-link/" name)) ()
|
|
|
+ ,(or desc name)
|
|
|
+ (should
|
|
|
+ (string=
|
|
|
+ (org-test-strip-text-props
|
|
|
+ (org-html-handle-links ,link ,opt-plist))
|
|
|
+ ,expected))))
|
|
|
+
|
|
|
+(org-test-html/export-link "mailto" "[[mailto:john@example.tld]]"
|
|
|
+ "<a href=\"mailto:john@example.tld\">mailto:john@example.tld</a>"
|
|
|
+ "mailto: link without description")
|
|
|
|
|
|
(provide 'test-org-html)
|
|
|
|