diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test-eat-config--charset-never-nil.el | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/test-eat-config--charset-never-nil.el b/tests/test-eat-config--charset-never-nil.el new file mode 100644 index 00000000..dfd38cb5 --- /dev/null +++ b/tests/test-eat-config--charset-never-nil.el @@ -0,0 +1,43 @@ +;;; test-eat-config--charset-never-nil.el --- Tests for the EAT charset nil-guard -*- lexical-binding: t; -*- + +;;; Commentary: +;; Unit tests for `cj/--eat-charset-never-nil', the `:filter-args' guard on +;; `eat--t-set-charset'. eat 0.9.4 accepts more charset-designation final +;; bytes in its parser than its store step maps, so an unmapped designation +;; (e.g. ESC ( A) stores nil as that slot's charset; the next character write +;; then trips (cl-assert charset) in `eat--t-write', repeatedly, via the +;; output-queue timer. The guard coerces a nil charset to `us-ascii' before +;; it is ever stored, so the assertion can't fire. + +;;; Code: + +(require 'ert) + +;; Stub keymap dep before loading the module (matches the other module tests). +(defvar cj/custom-keymap (make-sparse-keymap) + "Stub keymap for testing.") + +(require 'eat-config) + +(ert-deftest test-eat-config-charset-never-nil-normal-real-charset-unchanged () + "Normal: a real charset value passes through unchanged." + (should (equal (cj/--eat-charset-never-nil '(g0 us-ascii)) + '(g0 us-ascii))) + (should (equal (cj/--eat-charset-never-nil '(g1 dec-line-drawing)) + '(g1 dec-line-drawing)))) + +(ert-deftest test-eat-config-charset-never-nil-error-nil-becomes-us-ascii () + "Error: a nil charset (unmapped designation) is coerced to `us-ascii'." + (should (equal (cj/--eat-charset-never-nil '(g0 nil)) + '(g0 us-ascii))) + (should (equal (cj/--eat-charset-never-nil '(g3 nil)) + '(g3 us-ascii)))) + +(ert-deftest test-eat-config-charset-never-nil-boundary-preserves-slot () + "Boundary: the slot symbol is preserved for every slot, coerced or not." + (dolist (slot '(g0 g1 g2 g3)) + (should (eq (car (cj/--eat-charset-never-nil (list slot nil))) slot)) + (should (eq (cadr (cj/--eat-charset-never-nil (list slot nil))) 'us-ascii)))) + +(provide 'test-eat-config--charset-never-nil) +;;; test-eat-config--charset-never-nil.el ends here |
