[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)