diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/lisp/subr-tests.el | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/test/lisp/subr-tests.el b/test/lisp/subr-tests.el index c458eef2f93..06db8f5c902 100644 --- a/test/lisp/subr-tests.el +++ b/test/lisp/subr-tests.el | |||
| @@ -61,6 +61,9 @@ | |||
| 61 | (quote | 61 | (quote |
| 62 | (0 font-lock-keyword-face)))))))) | 62 | (0 font-lock-keyword-face)))))))) |
| 63 | 63 | ||
| 64 | (defalias 'subr-tests--parent-mode | ||
| 65 | (if (fboundp 'prog-mode) 'prog-mode 'fundamental-mode)) | ||
| 66 | |||
| 64 | (ert-deftest provided-mode-derived-p () | 67 | (ert-deftest provided-mode-derived-p () |
| 65 | ;; base case: `derived-mode' directly derives `prog-mode' | 68 | ;; base case: `derived-mode' directly derives `prog-mode' |
| 66 | (should (progn | 69 | (should (progn |
| @@ -68,9 +71,7 @@ | |||
| 68 | (provided-mode-derived-p 'derived-mode 'prog-mode))) | 71 | (provided-mode-derived-p 'derived-mode 'prog-mode))) |
| 69 | ;; edge case: `derived-mode' derives an alias of `prog-mode' | 72 | ;; edge case: `derived-mode' derives an alias of `prog-mode' |
| 70 | (should (progn | 73 | (should (progn |
| 71 | (defalias 'parent-mode | 74 | (define-derived-mode derived-mode subr-tests--parent-mode "test") |
| 72 | (if (fboundp 'prog-mode) 'prog-mode 'fundamental-mode)) | ||
| 73 | (define-derived-mode derived-mode parent-mode "test") | ||
| 74 | (provided-mode-derived-p 'derived-mode 'prog-mode)))) | 75 | (provided-mode-derived-p 'derived-mode 'prog-mode)))) |
| 75 | 76 | ||
| 76 | (ert-deftest number-sequence-test () | 77 | (ert-deftest number-sequence-test () |
| @@ -373,5 +374,31 @@ See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=19350." | |||
| 373 | (should (equal (flatten-tree '(1 ("foo" "bar") 2)) | 374 | (should (equal (flatten-tree '(1 ("foo" "bar") 2)) |
| 374 | '(1 "foo" "bar" 2)))) | 375 | '(1 "foo" "bar" 2)))) |
| 375 | 376 | ||
| 377 | (defvar subr-tests--hook nil) | ||
| 378 | |||
| 379 | (ert-deftest subr-tests-add-hook-depth () | ||
| 380 | "Test the `depth' arg of `add-hook'." | ||
| 381 | (setq-default subr-tests--hook nil) | ||
| 382 | (add-hook 'subr-tests--hook 'f1) | ||
| 383 | (add-hook 'subr-tests--hook 'f2) | ||
| 384 | (should (equal subr-tests--hook '(f2 f1))) | ||
| 385 | (add-hook 'subr-tests--hook 'f3 t) | ||
| 386 | (should (equal subr-tests--hook '(f2 f1 f3))) | ||
| 387 | (add-hook 'subr-tests--hook 'f4 50) | ||
| 388 | (should (equal subr-tests--hook '(f2 f1 f4 f3))) | ||
| 389 | (add-hook 'subr-tests--hook 'f5 -50) | ||
| 390 | (should (equal subr-tests--hook '(f5 f2 f1 f4 f3))) | ||
| 391 | (add-hook 'subr-tests--hook 'f6) | ||
| 392 | (should (equal subr-tests--hook '(f5 f6 f2 f1 f4 f3))) | ||
| 393 | ;; Make sure `t' is equivalent to 90. | ||
| 394 | (add-hook 'subr-tests--hook 'f7 90) | ||
| 395 | (add-hook 'subr-tests--hook 'f8 t) | ||
| 396 | (should (equal subr-tests--hook '(f5 f6 f2 f1 f4 f3 f7 f8))) | ||
| 397 | ;; Make sue `nil' is equivalent to 0. | ||
| 398 | (add-hook 'subr-tests--hook 'f9 0) | ||
| 399 | (add-hook 'subr-tests--hook 'f10) | ||
| 400 | (should (equal subr-tests--hook '(f5 f10 f9 f6 f2 f1 f4 f3 f7 f8))) | ||
| 401 | ) | ||
| 402 | |||
| 376 | (provide 'subr-tests) | 403 | (provide 'subr-tests) |
| 377 | ;;; subr-tests.el ends here | 404 | ;;; subr-tests.el ends here |