summaryrefslogtreecommitdiff
path: root/test/automated/abbrev-tests.el
diff options
context:
space:
mode:
authorLee Bochicchio <lboc.home@gmail.com>2015-11-26 15:38:09 +0900
committerArtur Malabarba <bruce.connor.am@gmail.com>2015-11-27 11:11:26 +0000
commit7fa3a0c264800c9a19ce26467effcb76dfb9a3f8 (patch)
treea1dd84167ec863f22b6ea620e30ccea0a8e1ccc8 /test/automated/abbrev-tests.el
parent1ed316d275241384f63b4dd6e39c7439d1ca56c9 (diff)
downloademacs-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.el55
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