diff options
author | Lee Bochicchio <lboc.home@gmail.com> | 2015-11-26 15:38:09 +0900 |
---|---|---|
committer | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-11-27 11:11:26 +0000 |
commit | 7fa3a0c264800c9a19ce26467effcb76dfb9a3f8 (patch) | |
tree | a1dd84167ec863f22b6ea620e30ccea0a8e1ccc8 /test/automated/abbrev-tests.el | |
parent | 1ed316d275241384f63b4dd6e39c7439d1ca56c9 (diff) | |
download | emacs-7fa3a0c264800c9a19ce26467effcb76dfb9a3f8.tar.gz |
* test/lisp/abbrev-tests.el: Define more tests
(abbrev-table-name-test, kill-all-abbrevs-test)
(clear-abbrev-table-test): New tests.
Diffstat (limited to 'test/automated/abbrev-tests.el')
-rw-r--r-- | test/automated/abbrev-tests.el | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/test/automated/abbrev-tests.el b/test/automated/abbrev-tests.el index d08e026ac59..6163e0b2c39 100644 --- a/test/automated/abbrev-tests.el +++ b/test/automated/abbrev-tests.el @@ -20,10 +20,23 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. +;;; Commentary: + +;; `kill-all-abbrevs-test' will remove all user *and* system abbrevs +;; if called noninteractively with the init file loaded. + ;;; Code: (require 'ert) (require 'abbrev) +(require 'seq) + +;; set up test abbrev table and abbrev entry +(defun setup-test-abbrev-table () + (defvar ert-test-abbrevs nil) + (define-abbrev-table 'ert-test-abbrevs '(("a-e-t" "abbrev-ert-test"))) + (abbrev-table-put ert-test-abbrevs :ert-test "ert-test-value") + ert-test-abbrevs) (ert-deftest copy-abbrev-table-test () (defvar foo-abbrev-table nil) ; Avoid compiler warning @@ -38,6 +51,48 @@ (should (abbrev-table-p new-foo-abbrev-table))) (should-not (string-equal (buffer-name) "*Backtrace*"))) +(ert-deftest kill-all-abbrevs-test () + "Test undefining all defined abbrevs" + (unless noninteractive + (ert-skip "Cannot test kill-all-abbrevs in interactive mode")) + + (let ((num-tables 0)) + ;; ensure at least one abbrev exists + (should (abbrev-table-p (setup-test-abbrev-table))) + (setf num-tables (length abbrev-table-name-list)) + (kill-all-abbrevs) + + ;; no tables should have been removed/added + (should (= num-tables (length abbrev-table-name-list))) + ;; number of empty tables should be the same as number of tables + (should (= num-tables (length (seq-filter + (lambda (table) + (abbrev-table-empty-p (symbol-value table))) + abbrev-table-name-list)))))) + +(ert-deftest abbrev-table-name-test () + "Test returning name of abbrev-table" + (let ((ert-test-abbrevs (setup-test-abbrev-table)) + (no-such-table nil)) + (should (equal 'ert-test-abbrevs (abbrev-table-name ert-test-abbrevs))) + (should (equal nil (abbrev-table-name no-such-table))))) + +(ert-deftest clear-abbrev-table-test () + "Test clearing single abbrev table" + (let ((ert-test-abbrevs (setup-test-abbrev-table))) + (should (equal "a-e-t" (symbol-name + (abbrev-symbol "a-e-t" ert-test-abbrevs)))) + (should (equal "abbrev-ert-test" (symbol-value + (abbrev-symbol "a-e-t" ert-test-abbrevs)))) + + (clear-abbrev-table ert-test-abbrevs) + + (should (equal "nil" (symbol-name + (abbrev-symbol "a-e-t" ert-test-abbrevs)))) + (should (equal nil (symbol-value + (abbrev-symbol "a-e-t" ert-test-abbrevs)))) + (should (equal t (abbrev-table-empty-p ert-test-abbrevs))))) + (provide 'abbrev-tests) ;;; abbrev-tests.el ends here |