[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/pyim 02f3398219: Add pyim-process tests
From: |
ELPA Syncer |
Subject: |
[elpa] externals/pyim 02f3398219: Add pyim-process tests |
Date: |
Sat, 11 Jun 2022 04:57:49 -0400 (EDT) |
branch: externals/pyim
commit 02f339821971ff44a851b096b4c1239aec313bb9
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>
Add pyim-process tests
---
pyim-process.el | 30 +++++----
tests/pyim-tests.el | 188 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 206 insertions(+), 12 deletions(-)
diff --git a/pyim-process.el b/pyim-process.el
index 23345dba4d..3d511f9982 100644
--- a/pyim-process.el
+++ b/pyim-process.el
@@ -296,22 +296,28 @@ imobj 组合构成在一起,构成了 imobjs 这个概念。比如:
"确定 pyim 是否需要启动中文输入模式."
(let* ((scheme (pyim-scheme-current))
(first-chars (pyim-scheme-first-chars scheme))
- (rest-chars (pyim-scheme-rest-chars scheme)))
- (and (or (pyim-process-force-input-chinese-p)
- (and (not pyim-process-input-ascii)
- (not (pyim-process-auto-switch-english-input-p))))
- (if (not (string< "" (pyim-entered-get 'point-before)))
- (member last-command-event
- (mapcar #'identity first-chars))
- (member last-command-event
- (mapcar #'identity rest-chars))))))
-
-(defun pyim-process-indicator-function ()
- "Indicator function."
+ (rest-chars (pyim-scheme-rest-chars scheme))
+ (entered (pyim-entered-get 'point-before)))
+ (and (pyim-process-input-chinese-predicate-1)
+ (pyim-process-input-chinese-predicate-2
+ last-command-event entered first-chars rest-chars))))
+
+(defun pyim-process-input-chinese-predicate-1 ()
+ "`pyim-process-input-chinese-p' 内部函数,测试环境。"
(or (pyim-process-force-input-chinese-p)
(and (not pyim-process-input-ascii)
(not (pyim-process-auto-switch-english-input-p)))))
+(defun pyim-process-input-chinese-predicate-2 (event entered first-chars
rest-chars)
+ "`pyim-process-input-chinese-p' 内部函数,测试输入。"
+ (if (not (string< "" entered))
+ (member event (mapcar #'identity first-chars))
+ (member event (mapcar #'identity rest-chars))))
+
+(defun pyim-process-indicator-function ()
+ "Indicator function."
+ (pyim-process-input-chinese-predicate-1))
+
(defun pyim-process-run ()
"查询 entered 字符串, 显示备选词等待用户选择。"
(if (= (length (pyim-entered-get 'point-before)) 0)
diff --git a/tests/pyim-tests.el b/tests/pyim-tests.el
index 3055d88c32..2ffe390a9f 100644
--- a/tests/pyim-tests.el
+++ b/tests/pyim-tests.el
@@ -1616,6 +1616,194 @@ Transfer-Encoding: chunked
'(4 "aaaa" ("工") ("工")))
'(:select current))))
+;; ** pyim-process 相关单元测试
+(ert-deftest pyim-tests-pyim-process-ui-init ()
+ (let* ((pyim-test nil)
+ (pyim-process-ui-init-hook
+ (list (lambda ()
+ (setq pyim-test 'hello)))))
+ (pyim-process-ui-init)
+ (should (equal pyim-test 'hello))))
+
+(ert-deftest pyim-tests-pyim-process-start-daemon ()
+ (let* ((pyim-test nil)
+ (pyim-process-start-daemon-hook
+ (list (lambda ()
+ (setq pyim-test 'hello)))))
+ (pyim-process-start-daemon)
+ (should (equal pyim-test 'hello))))
+
+(ert-deftest pyim-tests-pyim-process-stop-daemon ()
+ (let* ((pyim-test nil)
+ (pyim-process-stop-daemon-hook
+ (list (lambda ()
+ (setq pyim-test 'hello)))))
+ (pyim-process-stop-daemon)
+ (should (equal pyim-test 'hello))))
+
+(ert-deftest pyim-tests-pyim-process-auto-switch-english-input-p ()
+ (let ((pyim-english-input-switch-functions
+ (list (lambda () t)
+ (lambda () nil)
+ (lambda () nil))))
+ (should (pyim-process-auto-switch-english-input-p)))
+
+ (let ((pyim-english-input-switch-functions
+ (list (lambda () t)
+ (lambda () t)
+ (lambda () nil))))
+ (should (pyim-process-auto-switch-english-input-p)))
+
+ (let ((pyim-english-input-switch-functions
+ (list (lambda () nil)
+ (lambda () nil)
+ (lambda () nil))))
+ (should-not (pyim-process-auto-switch-english-input-p)))
+
+ (let ((pyim-english-input-switch-functions nil))
+ (should-not (pyim-process-auto-switch-english-input-p)))
+
+ (let ((pyim-english-input-switch-functions
+ (lambda () nil)))
+ (should-not (pyim-process-auto-switch-english-input-p)))
+
+ (let ((pyim-english-input-switch-functions
+ (lambda () t)))
+ (should (pyim-process-auto-switch-english-input-p)))
+
+ (let ((pyim-english-input-switch-functions "xxx"))
+ (should-not (pyim-process-auto-switch-english-input-p))))
+
+(ert-deftest pyim-tests-pyim-process-force-input-chinese-p ()
+ (let ((pyim-process-force-input-chinese nil)
+ (pyim-force-input-chinese-functions
+ (list (lambda () t)
+ (lambda () nil)
+ (lambda () nil))))
+ (should (pyim-process-force-input-chinese-p)))
+
+ (let ((pyim-process-force-input-chinese nil)
+ (pyim-force-input-chinese-functions
+ (list (lambda () t)
+ (lambda () t)
+ (lambda () nil))))
+ (should (pyim-process-force-input-chinese-p)))
+
+ (let ((pyim-process-force-input-chinese nil)
+ (pyim-force-input-chinese-functions
+ (lambda () t)))
+ (should (pyim-process-force-input-chinese-p)))
+
+ (let ((pyim-process-force-input-chinese nil)
+ (pyim-force-input-chinese-functions
+ (lambda () nil)))
+ (should-not (pyim-process-force-input-chinese-p)))
+
+ (let ((pyim-process-force-input-chinese nil)
+ (pyim-force-input-chinese-functions "xxx"))
+ (should-not (pyim-process-force-input-chinese-p)))
+
+ (let ((pyim-process-force-input-chinese nil)
+ (pyim-force-input-chinese-functions
+ (list (lambda () nil)
+ (lambda () nil)
+ (lambda () nil))))
+ (should-not (pyim-process-force-input-chinese-p)))
+
+ (let ((pyim-process-force-input-chinese t)
+ (pyim-force-input-chinese-functions nil))
+ (should (pyim-process-force-input-chinese-p)))
+
+ (let ((pyim-process-force-input-chinese t)
+ (pyim-force-input-chinese-functions
+ (list (lambda () nil)
+ (lambda () nil)
+ (lambda () nil))))
+ (should (pyim-process-force-input-chinese-p))))
+
+(ert-deftest pyim-tests-pyim-process-input-chinese-predicate-1 ()
+ (cl-letf (((symbol-function 'pyim-process-force-input-chinese-p)
+ (lambda () t))
+ (pyim-process-input-ascii t)
+ ((symbol-function 'pyim-process-auto-switch-english-input-p)
+ (lambda () t)))
+ (should (pyim-process-input-chinese-predicate-1)))
+
+ (cl-letf (((symbol-function 'pyim-process-force-input-chinese-p)
+ (lambda () t))
+ (pyim-process-input-ascii nil)
+ ((symbol-function 'pyim-process-auto-switch-english-input-p)
+ (lambda () t)))
+ (should (pyim-process-input-chinese-predicate-1)))
+
+ (cl-letf (((symbol-function 'pyim-process-force-input-chinese-p)
+ (lambda () t))
+ (pyim-process-input-ascii nil)
+ ((symbol-function 'pyim-process-auto-switch-english-input-p)
+ (lambda () t)))
+ (should (pyim-process-input-chinese-predicate-1)))
+
+ (cl-letf (((symbol-function 'pyim-process-force-input-chinese-p)
+ (lambda () nil))
+ (pyim-process-input-ascii nil)
+ ((symbol-function 'pyim-process-auto-switch-english-input-p)
+ (lambda () nil)))
+ (should (pyim-process-input-chinese-predicate-1)))
+
+ (cl-letf (((symbol-function 'pyim-process-force-input-chinese-p)
+ (lambda () nil))
+ (pyim-process-input-ascii t)
+ ((symbol-function 'pyim-process-auto-switch-english-input-p)
+ (lambda () nil)))
+ (should-not (pyim-process-input-chinese-predicate-1)))
+
+ (cl-letf (((symbol-function 'pyim-process-force-input-chinese-p)
+ (lambda () nil))
+ (pyim-process-input-ascii nil)
+ ((symbol-function 'pyim-process-auto-switch-english-input-p)
+ (lambda () t)))
+ (should-not (pyim-process-input-chinese-predicate-1)))
+
+ (cl-letf (((symbol-function 'pyim-process-force-input-chinese-p)
+ (lambda () nil))
+ (pyim-process-input-ascii nil)
+ ((symbol-function 'pyim-process-auto-switch-english-input-p)
+ (lambda () nil)))
+ (should (pyim-process-input-chinese-predicate-1))))
+
+(ert-deftest pyim-tests-pyim-process-input-chinese-predicate-2 ()
+ (should (pyim-process-input-chinese-predicate-2 ?a "" "abc" "def"))
+ (should-not (pyim-process-input-chinese-predicate-2 ?d "" "abc" "def"))
+ (should (pyim-process-input-chinese-predicate-2 ?d "a" "abc" "def"))
+ (should-not (pyim-process-input-chinese-predicate-2 ?g "a" "abc" "def")))
+
+(ert-deftest pyim-tests-pyim-process-input-chinese-p ()
+ (cl-letf (((symbol-function 'pyim-process-input-chinese-predicate-1)
+ (lambda (&rest _) nil))
+ ((symbol-function 'pyim-process-input-chinese-predicate-2)
+ (lambda (&rest _) nil)))
+ (should-not (pyim-process-input-chinese-p)))
+
+ (cl-letf (((symbol-function 'pyim-process-input-chinese-predicate-1)
+ (lambda (&rest _) t))
+ ((symbol-function 'pyim-process-input-chinese-predicate-2)
+ (lambda (&rest _) nil)))
+ (should-not (pyim-process-input-chinese-p)))
+
+ (cl-letf (((symbol-function 'pyim-process-input-chinese-predicate-1)
+ (lambda (&rest _) nil))
+ ((symbol-function 'pyim-process-input-chinese-predicate-2)
+ (lambda (&rest _) t)))
+ (should-not (pyim-process-input-chinese-p)))
+
+ (cl-letf (((symbol-function 'pyim-process-input-chinese-predicate-1)
+ (lambda (&rest _) t))
+ ((symbol-function 'pyim-process-input-chinese-predicate-2)
+ (lambda (&rest _) t)))
+ (should (pyim-process-input-chinese-p)))
+
+ )
+
(ert-run-tests-batch-and-exit)
;; * Footer
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/pyim 02f3398219: Add pyim-process tests,
ELPA Syncer <=