emacs-orgmode
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]