diff options
author | Martyn Jago <martyn.jago@btinternet.com> | 2012-01-05 15:49:16 +0000 |
---|---|---|
committer | Bastien Guerry <bzg@altern.org> | 2012-01-05 18:16:57 +0100 |
commit | b37be0237acfb21eabde53061de94a7a71ab217c (patch) | |
tree | e9794218af92ef912c89d74d74ba2d92c2b918a9 | |
parent | 710c073971a1b97f8ac45e77c14b07cab184196a (diff) | |
download | org-mode-b37be0237acfb21eabde53061de94a7a71ab217c.tar.gz |
Fixed and suplemented pending tests in `test-ob-exp.el'. * testing/examples/babel.org: examples altered and added to * testing/lisp/test-ob-exp.el: tests fixed and added to
-rw-r--r-- | testing/examples/babel.org | 76 | ||||
-rw-r--r-- | testing/lisp/test-ob-exp.el | 180 |
2 files changed, 204 insertions, 52 deletions
diff --git a/testing/examples/babel.org b/testing/examples/babel.org index bcb7e57..6c0825f 100644 --- a/testing/examples/babel.org +++ b/testing/examples/babel.org @@ -7,26 +7,69 @@ :END: #+name: noweb-example -#+begin_src emacs-lisp - (message "expanded") +#+begin_src emacs-lisp :results silent :exports code + (message "expanded1") #+end_src -#+begin_src emacs-lisp :noweb yes - ;; noweb-yes-start - <<noweb-example>> - ;; noweb-yes-end +#+name: noweb-example2 +#+begin_src emacs-lisp :results silent + (message "expanded2") #+end_src -#+begin_src emacs-lisp :noweb no - ;; noweb-no-start +#+begin_src emacs-lisp :noweb yes :results silent +;; noweb-1-yes-start <<noweb-example>> - ;; noweb-no-end #+end_src -#+begin_src emacs-lisp :noweb tangle +#+begin_src emacs-lisp :noweb no :results silent +;; noweb-no-start + <<noweb-example1>> +#+end_src + +#+begin_src emacs-lisp :noweb yes :results silent +;; noweb-2-yes-start + <<noweb-example2>> +#+end_src + +#+begin_src emacs-lisp :noweb tangle :results silent ;; noweb-tangle-start + <<noweb-example1>> + <<noweb-example2>> +#+end_src + +* =:noweb= header argument expansion using :exports results + :PROPERTIES: + :ID: 8701beb4-13d9-468c-997a-8e63e8b66f8d + :END: + +#+name: noweb-example +#+begin_src emacs-lisp :exports results + (message "expanded1") +#+end_src + +#+name: noweb-example2 +#+begin_src emacs-lisp :exports results + (message "expanded2") +#+end_src + +#+begin_src emacs-lisp :noweb yes :exports results +;; noweb-1-yes-start <<noweb-example>> - ;; noweb-tangle-end +#+end_src + +#+begin_src emacs-lisp :noweb no :exports code +;; noweb-no-start + <<noweb-example1>> +#+end_src + +#+begin_src emacs-lisp :noweb yes :exports results +;; noweb-2-yes-start + <<noweb-example2>> +#+end_src + +#+begin_src emacs-lisp :noweb tangle :exports code + <<noweb-example1>> + <<noweb-example2>> #+end_src * excessive id links on tangling @@ -62,7 +105,7 @@ #+name: i-have-a-name : 42 -* Pascal's Triangle -- export test +* Pascal's Triangle -- exports both test :PROPERTIES: :ID: 92518f2a-a46a-4205-a3ab-bcce1008a4bb :END: @@ -153,21 +196,24 @@ Here is one in the middle src_sh{echo 1} of a line. Here is one at the end of a line. src_sh{echo 2} src_sh{echo 3} Here is one at the beginning of a line. -* conflicting blocks on export +* mixed blocks with exports both :PROPERTIES: :ID: 5daa4d03-e3ea-46b7-b093-62c1b7632df3 :END: + #+name: a-list - a - b - c -#+begin_src emacs-lisp :results wrap :exports both +#+begin_src emacs-lisp :exports both "code block results" #+end_src -#+begin_src emacs-lisp :var lst=a-list :results list + +#+begin_src emacs-lisp :var lst=a-list :results list :exports both (reverse lst) #+end_src + * using the =:noweb-ref= header argument :PROPERTIES: :ID: 54d68d4b-1544-4745-85ab-4f03b3cbd8a0 diff --git a/testing/lisp/test-ob-exp.el b/testing/lisp/test-ob-exp.el index b9bec99..c303c5d 100644 --- a/testing/lisp/test-ob-exp.el +++ b/testing/lisp/test-ob-exp.el @@ -65,44 +65,150 @@ (should-not (file-exists-p (concat org-test-link-in-heading-file "::"))) (when (file-exists-p html-file) (delete-file html-file)))) -;; TODO -;; (ert-deftest ob-exp/noweb-on-export () -;; "Noweb header arguments export correctly. -;; - yes expand on both export and tangle -;; - no expand on neither export or tangle -;; - tangle expand on only tangle not export" -;; (let (html) -;; (org-test-at-id "eb1f6498-5bd9-45e0-9c56-50717053e7b7" -;; (org-narrow-to-subtree) -;; (let ((arg nil) -;; ) -;; (mapcar (lambda (x) -;; (should (equal "" -;; (org-export-as-html nil -;; nil -;; nil -;; 'string)))) -;; '("yes" "no" "tangle")))))) - - -;; TODO Test broken (args-out-of-range 1927 3462) -;; (ert-deftest ob-exp/exports-both () -;; "Test the :exports both header argument. -;; The code block should create both <pre></pre> and <table></table> -;; elements in the final html." -;; (let (html) -;; (org-test-at-id "92518f2a-a46a-4205-a3ab-bcce1008a4bb" -;; (org-narrow-to-subtree) -;; (setq html (org-export-as-html nil nil nil 'string)) -;; (should (string-match "<pre.*>[^\000]*</pre>" html)) -;; (should (string-match "<table.*>[^\000]*</table>" html))))) - -;; TODO Test Broken - causes ert to go off into the weeds -;; (ert-deftest ob-exp/export-subtree () -;; (org-test-at-id "5daa4d03-e3ea-46b7-b093-62c1b7632df3" -;; (org-mark-subtree) -;; (org-export-as-latex nil))) +(ert-deftest ob-exp/noweb-on-export () + "Noweb header arguments export correctly. +- yes expand on both export and tangle +- no expand on neither export or tangle +- tangle expand on only tangle not export" + (org-test-at-id "eb1f6498-5bd9-45e0-9c56-50717053e7b7" + (org-narrow-to-subtree) + (let ((exported-html + (org-export-as-html nil nil nil 'string)) + (test-point 0)) + (org-test-with-temp-text-in-file + exported-html + + ;; check following ouput exists and in order + (mapcar (lambda (x) + (should (< test-point + (re-search-forward + x + nil t))) + (setq test-point (point))) + '("<head>" "</head>" "<body>" + "<code>:noweb</code> header argument expansion" + "<code>:noweb</code> header argument expansion" + "message" "expanded1" + "message" "expanded2" + "noweb-1-yes-start" + "message" "expanded1" + "noweb-no-start" + "<<noweb-example1>>" + "noweb-2-yes-start" + "message" "expanded2" + "noweb-tangle-start" + "<<noweb-example1>>" + "<<noweb-example2>>" + "</body>")))))) + +(ert-deftest ob-exp/noweb-on-export-with-exports-results () + "Noweb header arguments export correctly using :exports results. +- yes expand on both export and tangle +- no expand on neither export or tangle +- tangle expand on only tangle not export" + (org-test-at-id "8701beb4-13d9-468c-997a-8e63e8b66f8d" + (org-narrow-to-subtree) + (let ((exported-html + (org-export-as-html nil nil nil 'string)) + (test-point 0)) + + (org-test-with-temp-text-in-file + exported-html + + ;; check following ouput exists and in order + (mapcar (lambda (x) + (should (< test-point + (re-search-forward + x + nil t))) + (setq test-point (point))) + '("<head>" "</head>" "<body>" + "<code>:noweb</code> header argument expansion using :exports results" + "<code>:noweb</code> header argument expansion using :exports results" + "expanded1" + "expanded2" + "expanded1" + "noweb-no-start" + "<<noweb-example1>>" + "expanded2" + "<<noweb-example1>>" + "<<noweb-example2>>" + "</body>")))))) + +(ert-deftest ob-exp/exports-both () + "Test the :exports both header argument. +The code block should create both <pre></pre> and <table></table> +elements in the final html." + (org-test-at-id "92518f2a-a46a-4205-a3ab-bcce1008a4bb" + (org-narrow-to-subtree) + (let ((exported-html + (org-export-as-html nil nil nil 'string)) + (test-point 0)) + + (org-test-with-temp-text-in-file + exported-html + + ;; check following ouput exists and in order + (mapcar (lambda (x) + (should (< test-point + (re-search-forward + x + nil t))) + (setq test-point (point))) + '("<head>" "</head>" "<body>" + "Pascal's Triangle – exports both test" + "Pascal's Triangle – exports both test" + "<pre" + "defun" "pascals-triangle" + "if""list""list""let*""prev-triangle" + "pascals-triangle""prev-row""car""reverse""prev-triangle" + "append""prev-triangle""list""map""list" + "append""prev-row""append""prev-row""pascals-triangle" + "</pre>" + "<table""<tbody>" + "<tr>"">1<""</tr>" + "<tr>"">1<"">1<""</tr>" + "<tr>"">1<"">2<"">1<""</tr>" + "<tr>"">1<"">3<"">3<"">1<""</tr>" + "<tr>"">1<"">4<"">6<"">4<"">1<""</tr>" + "<tr>"">1<"">5<"">10<"">10<"">5<"">1<""</tr>" + "</tbody>""</table>" + "</body>")))))) + +(ert-deftest ob-exp/mixed-blocks-with-exports-both () + (org-test-at-id "5daa4d03-e3ea-46b7-b093-62c1b7632df3" + (org-narrow-to-subtree) + (let ((exported-html + (org-export-as-html nil nil nil 'string)) + (test-point 0)) + (org-test-with-temp-text-in-file + exported-html + + ;; check following ouput exists and in order + (mapcar (lambda (x) + (should (< test-point + (re-search-forward + x + nil t))) + (setq test-point (point))) + '("<head>" "</head>" "<body>" + "mixed blocks with exports both" + "mixed blocks with exports both" + "<ul>" + "<li>""a""</li>" + "<li>""b""</li>" + "<li>""c""</li>" + "</ul>" + "<pre" + "\"code block results\"" + "</pre>" + "<pre class=\"example\">" + "code block results" + "</pre>" + "</body>")))))) + (provide 'test-ob-exp) ;;; test-ob-exp.el ends here + |