aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorChristopher Genovese2016-12-07 19:51:33 +0900
committerTino Calancha2016-12-07 19:51:33 +0900
commit20f5a5b386db878e69a4b6be565dc06d06b46ffd (patch)
tree24f855a48bdc8617f5800e40f743ad9b2da767c0 /test
parent8e5a769965313a7a1c42b5992ed24e8b0ea71ead (diff)
downloademacs-20f5a5b386db878e69a4b6be565dc06d06b46ffd.tar.gz
emacs-20f5a5b386db878e69a4b6be565dc06d06b46ffd.zip
ibuffer-saved-filters: Remove extra nesting level
Fix Bug#25049. * lisp/ibuf-ext.el (ibuffer-saved-filters): Remove extra nesting level; add transparent setter to adjust old-format values; update doc string. (ibuffer-save-filters): Remove extra level of nesting in ibuffer-saved-filters values when saving new filters. (ibuffer-old-saved-filters-warning): New variable with clickable message with repair options to be displayed as a warning if 'ibuffer-repair-saved-filters' detects a format mismatch. (ibuffer-repair-saved-filters): Add new command to check and repair saved filters format. (ibuffer-included-in-filter-p, ibuffer-decompose-filter): Change access of saved filter data (cadr->cdr) to account for reduced nesting. * test/lisp/ibuffer-tests.el (ibuffer-save-filters): New test; check that filters are saved in the proper format.
Diffstat (limited to 'test')
-rw-r--r--test/lisp/ibuffer-tests.el29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/lisp/ibuffer-tests.el b/test/lisp/ibuffer-tests.el
index 3a4def3a2b0..6d5187a2b77 100644
--- a/test/lisp/ibuffer-tests.el
+++ b/test/lisp/ibuffer-tests.el
@@ -66,5 +66,34 @@
66 (mapc (lambda (buf) (when (buffer-live-p buf) 66 (mapc (lambda (buf) (when (buffer-live-p buf)
67 (kill-buffer buf))) (list buf1 buf2))))) 67 (kill-buffer buf))) (list buf1 buf2)))))
68 68
69(ert-deftest ibuffer-save-filters ()
70 "Tests that `ibuffer-save-filters' saves in the proper format."
71 (skip-unless (featurep 'ibuf-ext))
72 (let ((ibuffer-save-with-custom nil)
73 (ibuffer-saved-filters nil)
74 (test1 '((mode . org-mode)
75 (or (size-gt . 10000)
76 (and (not (starred-name))
77 (directory . "\<org\>")))))
78 (test2 '((or (mode . emacs-lisp-mode) (file-extension . "elc?")
79 (and (starred-name) (name . "elisp"))
80 (mode . lisp-interaction-mode))))
81 (test3 '((size-lt . 100) (derived-mode . prog-mode)
82 (or (filename . "scratch")
83 (filename . "bonz")
84 (filename . "temp")))))
85 (ibuffer-save-filters "test1" test1)
86 (should (equal (car ibuffer-saved-filters) (cons "test1" test1)))
87 (ibuffer-save-filters "test2" test2)
88 (should (equal (car ibuffer-saved-filters) (cons "test2" test2)))
89 (should (equal (cadr ibuffer-saved-filters) (cons "test1" test1)))
90 (ibuffer-save-filters "test3" test3)
91 (should (equal (car ibuffer-saved-filters) (cons "test3" test3)))
92 (should (equal (cadr ibuffer-saved-filters) (cons "test2" test2)))
93 (should (equal (car (cddr ibuffer-saved-filters)) (cons "test1" test1)))
94 (should (equal (cdr (assoc "test1" ibuffer-saved-filters)) test1))
95 (should (equal (cdr (assoc "test2" ibuffer-saved-filters)) test2))
96 (should (equal (cdr (assoc "test3" ibuffer-saved-filters)) test3))))
97
69(provide 'ibuffer-tests) 98(provide 'ibuffer-tests)
70;; ibuffer-tests.el ends here 99;; ibuffer-tests.el ends here