emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/pyim f431925b9c 1/3: Add pyim-process tests.


From: ELPA Syncer
Subject: [elpa] externals/pyim f431925b9c 1/3: Add pyim-process tests.
Date: Sat, 11 Jun 2022 06:57:49 -0400 (EDT)

branch: externals/pyim
commit f431925b9c7540362f4e27304b4bde273e555820
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>

    Add pyim-process tests.
---
 pyim-process.el     | 22 +++++++++++++---------
 tests/pyim-tests.el | 41 +++++++++++++++++++++++++++++++++++++++--
 2 files changed, 52 insertions(+), 11 deletions(-)

diff --git a/pyim-process.el b/pyim-process.el
index 3d511f9982..82d8a9a1e6 100644
--- a/pyim-process.el
+++ b/pyim-process.el
@@ -354,7 +354,11 @@ imobj 组合构成在一起,构成了 imobjs 这个概念。比如:
 
 3. 如果返回的 list 中包含 :replace-with \"xxx\" 信息,那么
 \"xxx\" 上屏。"
-  (let* ((results (pyim-process-autoselector-results))
+  (let* ((results
+          ;; autoselector 功能会影响手动连续选择功能,所以这里做了一些限制,
+          ;; 只有在输入的时候才能够触发 autoselector 机制。
+          (when (pyim-process-self-insert-command-p this-command)
+            (pyim-process-autoselector-results)))
          (select-last-word
           (pyim-process-autoselector-find-result results 'last))
          (select-current-word
@@ -387,14 +391,14 @@ imobj 组合构成在一起,构成了 imobjs 这个概念。比如:
 
 (defun pyim-process-autoselector-results ()
   "运行所有 autoselectors, 返回结果列表。"
-  ;; autoselector 功能会影响手动连续选择功能,所以这里做了一些限制,
-  ;; 只有在输入的时候才能够触发 autoselector 机制。
-  (when (pyim-process-self-insert-command-p this-command)
-    (mapcar (lambda (x)
-              (when (functionp x)
-                (ignore-errors
-                  (funcall x))))
-            (cl-remove-duplicates pyim-process-autoselector :from-end t))))
+  (mapcar (lambda (x)
+            (when (functionp x)
+              (ignore-errors
+                (funcall x))))
+          (cl-remove-duplicates
+           pyim-process-autoselector
+           :from-end t
+           :test #'equal)))
 
 (defun pyim-process-self-insert-command-p (cmd)
   "测试 CMD 是否是一个 pyim self insert command."
diff --git a/tests/pyim-tests.el b/tests/pyim-tests.el
index 2ffe390a9f..ae5a2f8ffb 100644
--- a/tests/pyim-tests.el
+++ b/tests/pyim-tests.el
@@ -1800,9 +1800,46 @@ Transfer-Encoding: chunked
              (lambda (&rest _) t))
             ((symbol-function 'pyim-process-input-chinese-predicate-2)
              (lambda (&rest _) t)))
-    (should (pyim-process-input-chinese-p)))
+    (should (pyim-process-input-chinese-p))))
 
-  )
+(ert-deftest pyim-tests-pyim-process-autoselector ()
+  (let* ((pyim-process-autoselector
+          (list (lambda ()
+                  (list :select 'current :replace "test1"))
+                (lambda ()
+                  (list :select 'current :replace "test1"))
+                (lambda ()
+                  (list :select 'current :replace "test2"))
+                (lambda ()
+                  (list :select 'current :replace "test2"))
+                (lambda ()
+                  (list :select 'last :replace "test3"))
+                (lambda ()
+                  (list :select 'last :replace "test3"))
+                (lambda ()
+                  (list :select 'last :replace "test4"))
+                (lambda ()
+                  (list :select 'last :replace "test4"))))
+         (results (pyim-process-autoselector-results)))
+    (should (equal results
+                   '((:select current :replace "test1")
+                     (:select current :replace "test2")
+                     (:select last :replace "test3")
+                     (:select last :replace "test4"))))
+    (should (equal (pyim-process-autoselector-find-result results 'current)
+                   '(:select current :replace "test1")))
+    (should (equal (pyim-process-autoselector-find-result results 'last)
+                   '(:select last :replace "test3")))))
+
+(ert-deftest pyim-tests-pyim-process-self-insert-command-p ()
+  (let ((pyim-process-self-insert-commands nil))
+    (cl-pushnew 'test pyim-process-self-insert-commands)
+    (should (pyim-process-self-insert-command-p 'test))))
+
+(ert-deftest pyim-tests-pyim-process-merge-candidates ()
+  (should (equal (pyim-process-merge-candidates
+                  '("a" "b" "c") '("d" "e" "f" "a" "b"))
+                 '("d" "a" "b" "c" "e" "f"))))
 
 (ert-run-tests-batch-and-exit)
 



reply via email to

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