[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] [PATCH] Add tests for org-refile-get-targets
From: |
Sebastian Reuße |
Subject: |
[O] [PATCH] Add tests for org-refile-get-targets |
Date: |
Wed, 17 May 2017 20:44:58 +0200 |
* 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