branch: externals/ivy
commit 65db8f0245dd8d3735ab9aee546590a578f7501a
Author: Basil L. Contovounesios <ba...@contovou.net>
Commit: Basil L. Contovounesios <ba...@contovou.net>

    Add ivy-completion-common-length regression tests
    
    * ivy-test.el (ivy-completion-common-length): Extend tests.
---
 ivy-test.el | 76 +++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 62 insertions(+), 14 deletions(-)

diff --git a/ivy-test.el b/ivy-test.el
index 87dda1854b..e33eccb7e9 100644
--- a/ivy-test.el
+++ b/ivy-test.el
@@ -1007,20 +1007,68 @@ Since `execute-kbd-macro' doesn't pick up a let-bound 
`default-directory'.")
       (ivy-mode ivy-mode-reset-arg))))
 
 (ert-deftest ivy-completion-common-length ()
-  (should (= 2
-             (ivy-completion-common-length
-              #("test/"
-                0 2 (face completions-common-part)
-                2 3 (face (completions-first-difference))))))
-  (should (= 5
-             (ivy-completion-common-length
-              #("Math/E"
-                0 5 (face (completions-common-part))
-                5 6 (face (completions-first-difference))))))
-  (should (= 3
-             (ivy-completion-common-length
-              #("vec"
-                0 3 (face (completions-common-part)))))))
+  (mapc (lambda (pair)
+          (dolist (str (cdr pair))
+            (ert-info ((format "%S" str) :prefix "String: ")
+              (should (= (ivy-completion-common-length str) (car pair))))))
+        '((0 ""
+             #("a"   0 1 (face (completions-first-difference)))
+             #("ab"  0 1 (face (completions-first-difference)))
+             #("abc" 0 1 (face (completions-first-difference)))
+             #("a"   0 1 (font-lock-face (completions-first-difference)))
+             #("ab"  0 1 (font-lock-face (completions-first-difference)))
+             #("abc" 0 1 (font-lock-face (completions-first-difference)))
+             #("abc"
+               0 1 (face (completions-first-difference))
+               1 2 (face default))
+             #("abc"
+               0 1 (face (completions-first-difference))
+               2 3 (face default)))
+          (1 "a"
+             #("a"   0 1 (face default))
+             #("ab"  1 2 (face (completions-first-difference)))
+             #("ab"  0 2 (face (completions-first-difference)))
+             #("abc" 1 2 (face (completions-first-difference)))
+             #("abc" 0 2 (face (completions-first-difference)))
+             #("ab"  1 2 (font-lock-face (completions-first-difference)))
+             #("ab"  0 2 (font-lock-face (completions-first-difference)))
+             #("abc" 1 2 (font-lock-face (completions-first-difference)))
+             #("abc" 0 2 (font-lock-face (completions-first-difference)))
+             #("abc"
+               0 1 (face default)
+               1 2 (face (completions-first-difference)))
+             #("abc"
+               1 2 (face (completions-first-difference))
+               2 3 (face default)))
+          (2 "ab"
+             #("ab"  0 1 (face default))
+             #("ab"  1 2 (face default))
+             #("ab"  0 2 (face default))
+             #("abc" 2 3 (face (completions-first-difference)))
+             #("abc" 1 3 (face (completions-first-difference)))
+             #("abc" 0 3 (face (completions-first-difference)))
+             #("abc" 2 3 (font-lock-face (completions-first-difference)))
+             #("abc" 1 3 (font-lock-face (completions-first-difference)))
+             #("abc" 0 3 (font-lock-face (completions-first-difference)))
+             #("abc"
+               0 1 (face default)
+               2 3 (face (completions-first-difference)))
+             #("abc"
+               1 2 (face default)
+               2 3 (face (completions-first-difference)))
+             #("test/"
+               0 2 (face completions-common-part)
+               2 3 (face (completions-first-difference))))
+          (3 "abc"
+             #("abc" 0 1 (face default))
+             #("abc" 1 2 (face default))
+             #("abc" 2 3 (face default))
+             #("abc" 0 2 (face default))
+             #("abc" 1 3 (face default))
+             #("abc" 0 3 (face default)))
+          (5 #("Math/E"
+               0 5 (face completions-common-part)
+               5 6 (face (completions-first-difference)))))))
 
 (ert-deftest ivy--sort-function ()
   "Test `ivy--sort-function' behavior."

Reply via email to