Browse Source

org-pcomplete: Add tests

* testing/lisp/test-org-pcomplete.el (test-org-pcomplete/clocktable):
(test-org-pcomplete/drawer):
(test-org-pcomplete/entity):
(test-org-pcomplete/link):
(test-org-pcomplete/search-heading):
(test-org-pcomplete/todo): New tests.
Nicolas Goaziou 6 years ago
parent
commit
102ab1a245
1 changed files with 90 additions and 14 deletions
  1. 90 14
      testing/lisp/test-org-pcomplete.el

+ 90 - 14
testing/lisp/test-org-pcomplete.el

@@ -24,21 +24,39 @@
 
 ;;; Code:
 
-(ert-deftest test-org-pcomplete/prop ()
-  "Test property completion."
-  ;; Drawer where we are currently completing property name is
-  ;; malformed in any case, it'll become valid only after successful
-  ;; completion.  We expect that this completion process will finish
-  ;; successfully, and there will be no interactive drawer repair
-  ;; attempts.
+(ert-deftest test-org-pcomplete/clocktable ()
+  "Test completion of clock table parameters."
   (should
-   (equal
-    "* a\n:PROPERTIES:\n:pname: \n:END:\n* b\n:PROPERTIES:\n:pname: pvalue\n:END:\n"
-    (org-test-with-temp-text "* a\n:PROPERTIES:\n:pna<point>\n:END:\n* b\n:PROPERTIES:\n:pname: pvalue\n:END:\n"
-      (cl-letf (((symbol-function 'y-or-n-p)
-		 (lambda (_) (error "Should not be called"))))
-	(pcomplete))
-      (buffer-string)))))
+   (equal "#+begin: clocktable :scope"
+	  (org-test-with-temp-text "#+begin: clocktable :sco<point>"
+	    (pcomplete)
+	    (buffer-string)))))
+
+(ert-deftest test-org-pcomplete/drawer ()
+  "Test drawer completion."
+  (should
+   (equal "* Foo\n:PROPERTIES:"
+	  (org-test-with-temp-text "* Foo\n:<point>"
+	    (pcomplete)
+	    (buffer-string))))
+  (should
+   (equal ":DRAWER:\nContents\n:END:\n* Foo\n:DRAWER:"
+	  (org-test-with-temp-text ":DRAWER:\nContents\n:END:\n* Foo\n:D<point>"
+	    (pcomplete)
+	    (buffer-string)))))
+
+(ert-deftest test-org-pcomplete/entity ()
+  "Test entity completion."
+  (should
+   (equal "\\alpha"
+	  (org-test-with-temp-text "\\alp<point>"
+	    (pcomplete)
+	    (buffer-string))))
+  (should
+   (equal "\\frac12"
+	  (org-test-with-temp-text "\\frac1<point>"
+	    (pcomplete)
+	    (buffer-string)))))
 
 (ert-deftest test-org-pcomplete/keyword ()
   "Test keyword and block completion."
@@ -57,5 +75,63 @@
       (buffer-string))
     t)))
 
+(ert-deftest test-org-pcomplete/link ()
+  "Test link completion"
+  (should
+   (equal "[[org:"
+	  (org-test-with-temp-text "[[o<point>"
+	    (let ((org-link-abbrev-alist '(("org" . "https://orgmode.org/"))))
+	      (pcomplete))
+	    (buffer-string))))
+  (should-not
+   (equal "[org:"
+	  (org-test-with-temp-text "[[o<point>"
+	    (let ((org-link-abbrev-alist '(("org" . "https://orgmode.org/"))))
+	      (pcomplete))
+	    (buffer-string)))))
+
+(ert-deftest test-org-pcomplete/prop ()
+  "Test property completion."
+  (should
+   (equal
+    "
+* a
+:PROPERTIES:
+:pname:\s
+:END:
+* b
+:PROPERTIES:
+:pname: pvalue
+:END:
+"
+    (org-test-with-temp-text "
+* a
+:PROPERTIES:
+:pna<point>
+:END:
+* b
+:PROPERTIES:
+:pname: pvalue
+:END:
+"
+      (pcomplete)
+      (buffer-string)))))
+
+(ert-deftest test-org-pcomplete/search-heading ()
+  "Test search heading completion."
+  (should
+   (equal "* Foo\n[[*Foo"
+	  (org-test-with-temp-text "* Foo\n[[*<point>"
+	    (pcomplete)
+	    (buffer-string)))))
+
+(ert-deftest test-org-pcomplete/todo ()
+  "Test TODO completion."
+  (should
+   (equal "* TODO"
+	  (org-test-with-temp-text "* T<point>"
+	    (pcomplete)
+	    (buffer-string)))))
+
 (provide 'test-org-pcomplete)
 ;;; test-org-pcomplete.el ends here