Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions test/all-tests.el
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
(load "skk-test.el")
(load "skk-auto-test.el")
(load "skk-comp-test.el")
(load "skk-hint-test.el")
(load "skk-isearch-test.el")
(load "skk-jisx0201-test.el")
(load "skk-jisx0213-test.el")
(load "skk-num-test.el")
(load "skk-sticky-test.el")
(load "skk-tankan-test.el")

;; Local Variables:
;; indent-tabs-mode: nil
Expand Down
24 changes: 24 additions & 0 deletions test/context-skk-test.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
;;; context-skk-test.el --- context-skkのテスト -*- lexical-binding:t -*-

(require 'ert)
(require 'skk)
(require 'test-utils)

(skk-define-e2e-test context-skk/test1
"`context-skk'を有効にした場合、コード中のコメントの中では日本語が入力され、
コメントの外では英字が入力される。"
(actions #'emacs-lisp-mode
#'skk-mode
(lambda ()
(require 'context-skk)
(context-skk-mode 1))
;; コメント内。
"; ; SPC C-j a a a RET"
;; コメント外。
"a a a"
(lambda () (context-skk-mode 0)))
(expected-buffer-string ";; あああ\naaa"))

(provide 'context-skk-test)

;;; context-skk-test.el ends here
22 changes: 22 additions & 0 deletions test/skk-auto-test.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
;;; skk-auto-test.el --- skk-autoのテスト -*- lexical-binding:t -*-

(require 'ert)
(require 'skk)
(require 'test-utils)

(skk-define-e2e-test skk-auto/test1
"`skk-auto-okuri-process' が non-nil の場合、送り仮名を自動で決定する。
ただし、ユーザ辞書に入っている項目に限る。"
(okuri-ari-entries "うれs /嬉/")
(actions #'skk-mode
(lambda ()
(setq-local skk-auto-okuri-process t))
;; 送り仮名を明示的に指定して変換し、ユーザ辞書に「嬉」を追加する。
"U r e S i i RET"
;; 送り仮名を自動で決定させて変換する。
"U r e s i i SPC C-j")
(expected-buffer-string "嬉しい\n嬉しい"))

(provide 'skk-auto-test)

;;; skk-auto-test.el ends here
50 changes: 50 additions & 0 deletions test/skk-comp-test.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
;;; skk-comp-test.el --- skk-compのテスト -*- lexical-binding:t -*-

(require 'ert)
(require 'skk)
(require 'test-utils)

(skk-define-e2e-test skk-comp/test1
"TABを押すと補完する。
ただし、ユーザ辞書に入っている項目に限る。
M-SPCはTAB SPCの意味となる。"
(okuri-nasi-entries "かんじ /漢字/")
(actions #'skk-mode
;; 個人辞書にエントリを追加する。
"K a n j i SPC C-j"
;; 補完して変換する。
"K a TAB SPC C-j"
;; 補完して変換を M-SPC でまとめてやる。
"K a M-SPC C-j")
(expected-buffer-string "漢字漢字漢字"))

(skk-define-e2e-test skk-comp/test2
"読みの補完時に.と,で候補を切り替えられる。"
(okuri-nasi-entries "かんじ /漢字/"
"かんたん /簡単/")
(actions #'skk-mode
;; 個人辞書に「漢字」を追加する。
"K a n j i SPC C-j"
;; 個人辞書に「簡単」を追加する。
"K a n t a n SPC C-j"
;; 2番目の候補を補完する。
;; 辞書を変更しないように変換はせずにそのまま確定する。
"K a TAB . C-j"
;; 2番目の候補を表示したあと、1番目の候補に戻る。
;; 辞書を変更しないように変換はせずにそのまま確定する。
"K a TAB . , C-j")
(expected-buffer-string "漢字簡単かんじかんたん"))

(skk-define-e2e-test skk-comp/test3
"abbrevモードでも補完できる。"
(okuri-nasi-entries "alpha /α/")
(actions #'skk-mode
;; 個人辞書にエントリを追加する。
"/ a l p h a SPC C-j"
;; 補完して変換する。
"/ a TAB SPC C-j")
(expected-buffer-string "αα"))

(provide 'skk-comp-test)

;;; skk-comp-test.el ends here
19 changes: 19 additions & 0 deletions test/skk-hint-test.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
;;; skk-hint-test.el --- skk-hintのテスト -*- lexical-binding:t -*-

(require 'ert)
(require 'skk)
(require 'test-utils)

(skk-define-e2e-test skk-hint/test1
"`skk-hint' を `require' した場合、;キーを使って候補を絞り込める。"
(okuri-nasi-entries "かんじ /漢字/幹事/換字/"
"こと /事/")
(actions (lambda () (require 'skk-hint))
#'skk-mode
;; 「かんじ」の候補を「こと」で絞り込む。
"K a n j i ; k o t o SPC C-j")
(expected-buffer-string "幹事"))

(provide 'skk-hint-test)

;;; skk-hint-test.el ends here
20 changes: 20 additions & 0 deletions test/skk-isearch-test.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
;;; skk-isearch-test.el --- skk-isearchのテスト -*- lexical-binding:t -*-

(require 'ert)
(require 'skk)
(require 'test-utils)

(skk-define-e2e-test skk-isearch/test1
"`skk-isearch-mode-enable' が t の場合、isearch 時にSKKモードになる。"
;; `skk-setup' が必要なのでスキップする。
(skip-when t)
(actions (lambda ()
(setq-local skk-isearch-mode-enable t)
(insert "あああいいい"))
#'skk-mode
"C-s i i i C-m u u u")
(expected-buffer-string "あああいいいううう"))

(provide 'skk-isearch-test)

;;; skk-isearch-test.el ends here
19 changes: 19 additions & 0 deletions test/skk-jisx0201-test.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
;;; skk-jisx0201-test.el --- skk-jisx0201のテスト -*- lexical-binding:t -*-

(require 'ert)
(require 'skk)
(require 'test-utils)

(skk-define-e2e-test skk-jisx0201/test1
"`skk-use-jisx0201-input-method' が有効な場合、C-qで半角カナモードになる。"
;; `skk-use-jisx0201-input-method' はロード後に設定しても効果がないので
;; スキップする。
(skip-when t)
(actions (lambda () (setq-local skk-use-jisx0201-input-method t))
#'skk-mode
"q C-q k a n a")
(expected-buffer-string "カナ"))

(provide 'skk-jisx0201-test)

;;; skk-jisx0201-test.el ends here
22 changes: 22 additions & 0 deletions test/skk-jisx0213-test.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
;;; skk-jisx0213-test.el --- skk-jisx0213のテスト -*- lexical-binding:t -*-

(require 'ert)
(require 'skk)
(require 'test-utils)

(skk-define-e2e-test skk-jisx0213/test1
"`skk-jisx0213-prohibit' が non-nil である場合、JIS X 0213で追加された
文字を含む候補は除外される。"
;; KNOWN-BUG: `find-charset-string' は japanese-jisx0213.2004-1 を返すが、
;; `skk-jisx0213-henkan-list-filter' はまだこれに対応していない。
;; 既知のバグとしてスキップする。
(skip-when t)
(okuri-nasi-entries "かんじ /①/漢字/")
(actions (lambda () (setq-local skk-jisx0213-prohibit t))
#'skk-mode
"K a n j i SPC C-j")
(expected-buffer-string "漢字"))

(provide 'skk-jisx0213-test)

;;; skk-jisx0213-test.el ends here
16 changes: 16 additions & 0 deletions test/skk-num-test.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
;;; skk-num-test.el --- skk-numのテスト -*- lexical-binding:t -*-

(require 'ert)
(require 'skk)
(require 'test-utils)

(skk-define-e2e-test skk-num/test1
"数字を変換できる。"
(okuri-nasi-entries "#えん /#3円/")
(actions #'skk-mode
"Q 1 2 3 e n SPC C-j")
(expected-buffer-string "百二十三円"))

(provide 'skk-num-test)

;;; skk-num-test.el ends here
20 changes: 20 additions & 0 deletions test/skk-sticky-test.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
;;; skk-sticky-test.el --- skk-stickyのテスト -*- lexical-binding:t -*-

(require 'ert)
(require 'skk)
(require 'test-utils)

(skk-define-e2e-test skk-sticky/test1
"`skk-sticky-key' により指定したキーで変換開始および送り開始位置を
指定できる。"
;; ロード時に設定する必要があるためスキップする。
(skip-when t)
(okuri-ari-entries "かんj /感/")
(actions (lambda () (setq-local skk-sticky-key ";"))
#'skk-mode
"; k a n ; j i C-j")
(expected-buffer-string "感じ"))

(provide 'skk-sticky-test)

;;; skk-sticky-test.el ends here
16 changes: 16 additions & 0 deletions test/skk-tankan-test.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
;;; skk-tankan-test.el --- skk-tankanのテスト -*- lexical-binding:t -*-

(require 'ert)
(require 'skk)
(require 'test-utils)

(skk-define-e2e-test skk-tankan/test1
"見出しの最後に@を付けると1文字の漢字のみを候補とする。"
(okuri-nasi-entries "かい /下位/解/")
(actions #'skk-mode
"K a i @ SPC C-j")
(expected-buffer-string "解"))

(provide 'skk-tankan-test)

;;; skk-tankan-test.el ends here
Loading