Use macro to compose html link export tests
authorDavid Maus <dmaus@ictsoc.de>
Sun, 25 Sep 2011 07:49:39 +0000 (09:49 +0200)
committerDavid Maus <dmaus@ictsoc.de>
Sun, 25 Sep 2011 07:49:39 +0000 (09:49 +0200)
* 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.

testing/lisp/test-org-html.el

index 85a8d53..c2cc067 100644 (file)
 \f
 ;;; 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)