|
@@ -869,65 +869,194 @@ Line 3\"
|
|
|
test-line
|
|
|
(forward-char 1)
|
|
|
(org-ctrl-c-ctrl-c)
|
|
|
- (should (string= (concat test-line " =\"x\"=")
|
|
|
- (buffer-substring-no-properties
|
|
|
- (point-min) (point-max)))))))
|
|
|
+ (should (re-search-forward "\\#\\+results:" nil t))
|
|
|
+ (forward-line)
|
|
|
+ (should
|
|
|
+ (string=
|
|
|
+ ""
|
|
|
+ (buffer-substring-no-properties (point-at-bol) (point-at-eol))))))
|
|
|
+ (org-test-with-temp-text-in-file "
|
|
|
+#+begin_src emacs-lisp
|
|
|
+\"some text\";;
|
|
|
+#+end_src"
|
|
|
|
|
|
-(ert-deftest test-org-babel/inline-src-block-preceded-by-equality ()
|
|
|
- (let ((test-line "=src_emacs-lisp[ :results verbatim ]{ \"x\" }"))
|
|
|
- (org-test-with-temp-text
|
|
|
- test-line
|
|
|
- (forward-char 1)
|
|
|
+ (progn
|
|
|
+ (org-babel-next-src-block)
|
|
|
(org-ctrl-c-ctrl-c)
|
|
|
- (should (string= (concat test-line " =\"x\"=")
|
|
|
- (buffer-substring-no-properties
|
|
|
- (point-min) (point-max)))))))
|
|
|
+ (should (re-search-forward "\\#\\+results:" nil t))
|
|
|
+ (forward-line)
|
|
|
+ (should
|
|
|
+ (string=
|
|
|
+ ": some text"
|
|
|
+ (buffer-substring-no-properties (point-at-bol) (point-at-eol)))))))
|
|
|
|
|
|
-(ert-deftest test-org-babel/inline-src-block-enclosed-within-parenthesis ()
|
|
|
- (let ((test-line "(src_emacs-lisp[ :results verbatim ]{ \"x\" }"))
|
|
|
- (org-test-with-temp-text
|
|
|
- (concat test-line ")")
|
|
|
- (forward-char 1)
|
|
|
+(ert-deftest test-ob/commented-last-block-line-with-var ()
|
|
|
+ (org-test-with-temp-text-in-file "
|
|
|
+#+begin_src emacs-lisp :var a=1
|
|
|
+;;
|
|
|
+#+end_src"
|
|
|
+ (progn
|
|
|
+ (org-babel-next-src-block)
|
|
|
(org-ctrl-c-ctrl-c)
|
|
|
- (should (string= (concat test-line " =\"x\"=)" )
|
|
|
- (buffer-substring-no-properties
|
|
|
- (point-min) (point-max)))))))
|
|
|
-
|
|
|
-(ert-deftest test-org-babel/inline-src-block-enclosed-within-parenthesis ()
|
|
|
- (let ((test-line "{src_emacs-lisp[ :results verbatim ]{ \"x\" }"))
|
|
|
- (org-test-with-temp-text
|
|
|
- (concat test-line "}")
|
|
|
- (forward-char 1)
|
|
|
+ (re-search-forward "\\#\\+results:" nil t)
|
|
|
+ (forward-line)
|
|
|
+ (should (string=
|
|
|
+ ""
|
|
|
+ (buffer-substring-no-properties (point-at-bol) (point-at-eol))))))
|
|
|
+ (org-test-with-temp-text-in-file "
|
|
|
+#+begin_src emacs-lisp :var a=2
|
|
|
+2;;
|
|
|
+#+end_src"
|
|
|
+ (progn
|
|
|
+ (org-babel-next-src-block)
|
|
|
(org-ctrl-c-ctrl-c)
|
|
|
- (should (string= (concat test-line " =\"x\"=}")
|
|
|
+ (re-search-forward "\\#\\+results:" nil t)
|
|
|
+ (forward-line)
|
|
|
+ (should (string=
|
|
|
+ ": 2"
|
|
|
+ (buffer-substring-no-properties (point-at-bol) (point-at-eol)))))))
|
|
|
+
|
|
|
+(defun test-ob-verify-result-and-removed-result (result buffer-text)
|
|
|
+ "Test helper function to test `org-babel-remove-result'.
|
|
|
+A temp buffer is populated with BUFFER-TEXT, the first block is executed,
|
|
|
+and the result of execution is verified against RESULT.
|
|
|
+
|
|
|
+The block is actually executed /twice/ to ensure result
|
|
|
+replacement happens correctly."
|
|
|
+ (org-test-with-temp-text
|
|
|
+ buffer-text
|
|
|
+ (progn
|
|
|
+ (org-babel-next-src-block) (org-ctrl-c-ctrl-c) (org-ctrl-c-ctrl-c)
|
|
|
+ (should (re-search-forward "\\#\\+results:" nil t))
|
|
|
+ (forward-line)
|
|
|
+ (should (string= result
|
|
|
+ (buffer-substring-no-properties
|
|
|
+ (point-at-bol)
|
|
|
+ (- (point-max) 16))))
|
|
|
+ (org-babel-previous-src-block) (org-babel-remove-result)
|
|
|
+ (should (string= buffer-text
|
|
|
(buffer-substring-no-properties
|
|
|
(point-min) (point-max)))))))
|
|
|
|
|
|
-(ert-deftest test-org-babel/inline-src_blk-preceded-by-letter ()
|
|
|
- "Test inline source block invalid where preceded by letter"
|
|
|
+(ert-deftest test-ob/org-babel-remove-result--results-default ()
|
|
|
+ "Test `org-babel-remove-result' with default :results."
|
|
|
+ (mapcar (lambda (language)
|
|
|
+ (test-ob-verify-result-and-removed-result
|
|
|
+ "\n"
|
|
|
+ (concat
|
|
|
+"* org-babel-remove-result
|
|
|
+#+begin_src " language "
|
|
|
+#+end_src
|
|
|
|
|
|
- ;; inline-src-blk preceded by letter
|
|
|
- (org-test-with-temp-text
|
|
|
- "asrc_emacs-lisp[ :results verbatim ]{ \"x\" }"
|
|
|
- (forward-char 1)
|
|
|
- (let ((error-result
|
|
|
- (should-error
|
|
|
- (org-ctrl-c-ctrl-c))))
|
|
|
- (should (equal `(error "C-c C-c can do nothing useful at this location")
|
|
|
- error-result)))))
|
|
|
-
|
|
|
-(ert-deftest test-org-babel/inline-src_blk-preceded-by-number ()
|
|
|
- "Test inline source block invalid where preceded by number"
|
|
|
-
|
|
|
- ;; inline-src-blk preceded by number
|
|
|
- (org-test-with-temp-text
|
|
|
- "0src_emacs-lisp[ :results verbatim ]{ \"x\" }"
|
|
|
- (forward-char 1)
|
|
|
- (let ((error-result
|
|
|
- (should-error
|
|
|
- (org-ctrl-c-ctrl-c))))
|
|
|
- (should (equal `(error "C-c C-c can do nothing useful at this location")
|
|
|
- error-result)))))
|
|
|
+* next heading")))
|
|
|
+ '("sh" "emacs-lisp")))
|
|
|
+
|
|
|
+(ert-deftest test-ob/org-babel-remove-result--results-list ()
|
|
|
+ "Test `org-babel-remove-result' with :results list."
|
|
|
+ (test-ob-verify-result-and-removed-result
|
|
|
+ "- 1
|
|
|
+- 2
|
|
|
+- 3
|
|
|
+- (quote (4 5))"
|
|
|
+
|
|
|
+"* org-babel-remove-result
|
|
|
+#+begin_src emacs-lisp :results list
|
|
|
+'(1 2 3 '(4 5))
|
|
|
+#+end_src
|
|
|
+
|
|
|
+* next heading"))
|
|
|
+
|
|
|
+(ert-deftest test-ob/org-babel-remove-result--results-wrap ()
|
|
|
+ "Test `org-babel-remove-result' with :results wrap."
|
|
|
+ (test-ob-verify-result-and-removed-result
|
|
|
+ ":RESULTS:
|
|
|
+hello there
|
|
|
+:END:"
|
|
|
+
|
|
|
+ "* org-babel-remove-result
|
|
|
+
|
|
|
+#+begin_src emacs-lisp :results wrap
|
|
|
+\"hello there\"
|
|
|
+#+end_src
|
|
|
+
|
|
|
+* next heading"))
|
|
|
+
|
|
|
+(ert-deftest test-ob/org-babel-remove-result--results-org ()
|
|
|
+ "Test `org-babel-remove-result' with :results org."
|
|
|
+ (test-ob-verify-result-and-removed-result
|
|
|
+ "#+BEGIN_ORG
|
|
|
+* heading
|
|
|
+** subheading
|
|
|
+content
|
|
|
+#+END_ORG"
|
|
|
+
|
|
|
+"* org-babel-remove-result
|
|
|
+#+begin_src emacs-lisp :results org
|
|
|
+\"* heading
|
|
|
+** subheading
|
|
|
+content\"
|
|
|
+#+end_src
|
|
|
+
|
|
|
+* next heading"))
|
|
|
+
|
|
|
+(ert-deftest test-ob/org-babel-remove-result--results-html ()
|
|
|
+ "Test `org-babel-remove-result' with :results html."
|
|
|
+ (test-ob-verify-result-and-removed-result
|
|
|
+ "#+BEGIN_HTML
|
|
|
+<head><body></body></head>
|
|
|
+#+END_HTML"
|
|
|
+
|
|
|
+"* org-babel-remove-result
|
|
|
+#+begin_src emacs-lisp :results html
|
|
|
+\"<head><body></body></head>\"
|
|
|
+#+end_src
|
|
|
+
|
|
|
+* next heading"))
|
|
|
+
|
|
|
+(ert-deftest test-ob/org-babel-remove-result--results-latex ()
|
|
|
+ "Test `org-babel-remove-result' with :results latex."
|
|
|
+ (test-ob-verify-result-and-removed-result
|
|
|
+ "#+BEGIN_LaTeX
|
|
|
+Line 1
|
|
|
+Line 2
|
|
|
+Line 3
|
|
|
+#+END_LaTeX"
|
|
|
+
|
|
|
+"* org-babel-remove-result
|
|
|
+#+begin_src emacs-lisp :results latex
|
|
|
+\"Line 1
|
|
|
+Line 2
|
|
|
+Line 3\"
|
|
|
+#+end_src
|
|
|
+
|
|
|
+* next heading"))
|
|
|
+
|
|
|
+(ert-deftest test-ob/org-babel-remove-result--results-code ()
|
|
|
+ "Test `org-babel-remove-result' with :results code."
|
|
|
+
|
|
|
+ (test-ob-verify-result-and-removed-result
|
|
|
+ "#+BEGIN_SRC emacs-lisp
|
|
|
+\"I am working!\"
|
|
|
+#+END_SRC"
|
|
|
+
|
|
|
+"* org-babel-remove-result
|
|
|
+#+begin_src emacs-lisp :results code
|
|
|
+(message \"I am working!\")
|
|
|
+#+end_src
|
|
|
+
|
|
|
+* next heading"))
|
|
|
+
|
|
|
+(ert-deftest test-ob/org-babel-remove-result--results-pp ()
|
|
|
+ "Test `org-babel-remove-result' with :results pp."
|
|
|
+ (test-ob-verify-result-and-removed-result
|
|
|
+ ": \"I /am/ working!\""
|
|
|
+
|
|
|
+"* org-babel-remove-result
|
|
|
+#+begin_src emacs-lisp :results pp
|
|
|
+\"I /am/ working!\")
|
|
|
+#+end_src
|
|
|
+
|
|
|
+* next heading"))
|
|
|
|
|
|
(provide 'test-ob)
|
|
|
|