* testing/lisp/test-org.el: Add test. --- testing/examples/refile/a.org | 6 ++++ testing/examples/refile/b.org | 6 ++++ testing/lisp/test-org.el | 71 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 testing/examples/refile/a.org create mode 100644 testing/examples/refile/b.org
diff --git a/testing/examples/refile/a.org b/testing/examples/refile/a.org new file mode 100644 index 000000000..7ed235a52 --- /dev/null +++ b/testing/examples/refile/a.org @@ -0,0 +1,6 @@ +* a/1/1 +** a/1/2 +*** a/1/3 +* a/2/1 +** a/2/2 +*** a/2/3 diff --git a/testing/examples/refile/b.org b/testing/examples/refile/b.org new file mode 100644 index 000000000..15359b16e --- /dev/null +++ b/testing/examples/refile/b.org @@ -0,0 +1,6 @@ +* b/1/1 +** b/1/2 +*** b/1/3 +* b/2/1 +** b/2/2 +*** b/2/3 diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el index b8bd88957..099817064 100644 --- a/testing/lisp/test-org.el +++ b/testing/lisp/test-org.el @@ -5266,6 +5266,77 @@ (ert-deftest test-org/update-radio-target-regexp () (org-element-type (org-element-context)))))) +;;; Refile + +(defvar test-org/refile-use-outline-path-examples-dir + (file-truename "../examples/refile/") + "Absolute path to example files used in ‘org-refile’ tests.") + +(defvar test-org/refile-use-outline-path-targets + `((nil . ("a/1/2" + "a/2/2" + "b/1/2" + "b/2/2")) + (file . ("a.org" + "a.org/a\\/1\\/1/a\\/1\\/2" + "a.org/a\\/2\\/1/a\\/2\\/2" + "b.org" + "b.org/b\\/1\\/1/b\\/1\\/2" + "b.org/b\\/2\\/1/b\\/2\\/2")) + (full-file-path . ,(mapcar (lambda (s) + (concat test-org/refile-use-outline-path-examples-dir s)) + '("a.org" + "a.org/a\\/1\\/1/a\\/1\\/2" + "a.org/a\\/2\\/1/a\\/2\\/2" + "b.org" + "b.org/b\\/1\\/1/b\\/1\\/2" + "b.org/b\\/2\\/1/b\\/2\\/2"))) + (buffer-name . ("a.org" + "a.org/a\\/1\\/1/a\\/1\\/2" + "a.org/a\\/2\\/1/a\\/2\\/2" + "gratuitous-prefix/b.org" + "gratuitous-prefix/b.org/b\\/1\\/1/b\\/1\\/2" + "gratuitous-prefix/b.org/b\\/2\\/1/b\\/2\\/2"))) + "Alist of ‘refile-use-outline-path’ settings and associated \ +expected refile targets.") + +(defmacro test-org/refile-get-targets (use-outline-path) + "Helper macro to test ‘org-refile-get-targets’ with \ +‘org-refile-use-outline-path’ set to USE-OUTLINE-PATH." + `(save-window-excursion + (let ((org-refile-targets '((("a.org" "b.org") + :level . 2))) + (org-refile-use-outline-path ,use-outline-path)) + (cd test-org/refile-use-outline-path-examples-dir) + (find-file-read-only "a.org") + (find-file-read-only "b.org") + (rename-buffer "gratuitous-prefix/b.org") + (should (equal + (mapcar #'car (org-refile-get-targets)) + (alist-get ,use-outline-path + test-org/refile-use-outline-path-targets)))))) + +(ert-deftest test-org/refile-get-targets-no-outline-path () + "Test ‘org-refile-get-targets’ with \ +‘org-refile-use-outline-path’ to ‘nil’." + (test-org/refile-get-targets nil)) + +(ert-deftest test-org/refile-get-targets-full-file-path () + "Test ‘org-refile-get-targets’ with \ +‘org-refile-use-outline-path’ set to ‘full-file-path’." + (test-org/refile-get-targets 'full-file-path)) + +(ert-deftest test-org/refile-get-targets-buffer-name () + "Test `org-refile-get-targets' with \ +`org-refile-use-outline-path' set to ‘buffer-name’." + (test-org/refile-get-targets 'buffer-name)) + +(ert-deftest test-org/refile-get-targets-file () + "Test `org-refile-get-targets' with \ +`org-refile-use-outline-path' set to ‘file’." + (test-org/refile-get-targets 'file)) + + ;;; Sparse trees (ert-deftest test-org/match-sparse-tree () -- 2.13.0