소스 검색

Use macro to compose html link export tests

* lisp/test-org-html.el (org-test-html/export-link): New
macro. Compose link export test.
(test-org-html/export-link-factory)
(test-org-html/export-link-alist): Remove factory variable and
function, use new macro instead.
David Maus 13 년 전
부모
커밋
d5722a7b6c
1개의 변경된 파일12개의 추가작업 그리고 35개의 파일을 삭제
  1. 12 35
      testing/lisp/test-org-html.el

+ 12 - 35
testing/lisp/test-org-html.el

@@ -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)