Browse Source

Define factory function to create pre-defined link export tests

* lisp/test-org-html.el (test-org-html/export-link-alist): New
variable. Abstract link export test definition.
(test-org-html/export-link-factory): New function. Create tests for
link export.
David Maus 14 years ago
parent
commit
ada3ff175f
1 changed files with 64 additions and 0 deletions
  1. 64 0
      testing/lisp/test-org-html.el

+ 64 - 0
testing/lisp/test-org-html.el

@@ -0,0 +1,64 @@
+;;; test-org-html.el
+
+;; Copyright (c) ߛ David Maus
+;; Authors: David Maus
+
+;; Released under the GNU General Public License version 3
+;; see: http://www.gnu.org/licenses/gpl-3.0.html
+
+;;;; Comments:
+
+;; Template test file for Org-mode tests
+
+
+;;; Code:
+(let ((load-path (cons (expand-file-name
+			".." (file-name-directory
+			      (or load-file-name buffer-file-name)))
+		       load-path)))
+  (require 'org-test)
+  (require 'org-test-ob-consts))
+
+
+;;; 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)
+
+(provide 'test-org-html)
+
+;;; test-org-html.el ends here