;;; test-org-src.el --- tests for org-src.el ;; Copyright (C) 2012, 2013 Le Wang ;; Author: Le Wang ;; This file is not part of GNU Emacs. ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Code: (require 'org-test) (ert-deftest test-org-src/basic () "Editing regular block works. with point on #+begin_src line " (org-test-with-temp-text " #+begin_src emacs-lisp (message hello) #+end_src " (goto-line 2) (org-edit-special) (insert "blah") (org-edit-src-exit) (should (equal (buffer-string) " #+begin_src emacs-lisp blah(message hello) #+end_src ")) (should (equal (word-at-point) "blah")))) (ert-deftest test-org-src/point-outside-block () "Editing with point before/after block signals expected error." (org-test-with-temp-text " #+begin_src emacs-lisp (message hello) #+end_src " (goto-line 1) (should-error (org-edit-special)) (goto-char (point-max)) (should-error (org-edit-special)))) (ert-deftest test-org-src/empty-block () "Editing empty block." (org-test-with-temp-text " #+begin_src emacs-lisp #+end_src " (goto-line 2) (org-edit-special) (insert "blah") (org-edit-src-exit) (should (equal (buffer-string) " #+begin_src emacs-lisp blah #+end_src ")) (should (equal (word-at-point) "blah")))) (ert-deftest test-org-src/blank-line-block () "Editing block with just a blank line." (org-test-with-temp-text-in-file " #+begin_src emacs-lisp #+end_src " (goto-line 2) (org-edit-special) (insert "blah") (org-edit-src-exit) (should (equal (buffer-string) " #+begin_src emacs-lisp blah #+end_src ")))) (ert-deftest test-org-src/no-change () "Not changing contents should not change buffer-modified status." (org-test-with-temp-text " #+begin_src emacs-lisp (message hello) #+end_src " (goto-line 2) (set-buffer-modified-p nil) (org-edit-special) (org-edit-src-exit) (should (equal (buffer-modified-p) nil)))) (ert-deftest test-org-src/no-change-empty-block () "Not changing contents should change buffer-modified status when newline has to be added." (org-test-with-temp-text " #+begin_src emacs-lisp #+end_src " (goto-line 2) (set-buffer-modified-p nil) (org-edit-special) (org-edit-src-exit) (should (equal (buffer-modified-p) t)))) (provide 'test-org-src) ;;; test-org-src.el ends here