Update buffer api unit tests

This commit is contained in:
Henrik Lissner 2018-01-03 14:10:45 -05:00
parent 4d51a1ab09
commit 83d2507138
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -10,10 +10,13 @@
`(cl-flet ((buffer-list `(cl-flet ((buffer-list
(lambda () (lambda ()
(cl-remove-if-not #'buffer-live-p (list ,@(reverse (mapcar #'car buffers))))))) (cl-remove-if-not #'buffer-live-p (list ,@(reverse (mapcar #'car buffers)))))))
(let* (persp-mode (let* ((split-width-threshold 0)
(window-min-width 0)
persp-mode
,@buffers) ,@buffers)
,@body ,@body
(mapc #'kill-buffer (buffer-list)))))) (let (kill-buffer-query-functions kill-buffer-hook)
(mapc #'kill-buffer (buffer-list)))))))
;; ;;
(def-test! get-buffers (def-test! get-buffers
@ -100,20 +103,16 @@
(should (= 2 (length el-buffers))) (should (= 2 (length el-buffers)))
(should (= 3 (length txt-buffers)))))) (should (= 3 (length txt-buffers))))))
;; `doom-kill-buffer' ;; `doom-fallback-buffer'
(def-test! kill-buffer (def-test! fallback-buffer
(with-temp-buffers!! (a b) (let ((fallback (doom-fallback-buffer)))
(doom-kill-buffer a) (should (buffer-live-p fallback))
(should-not (buffer-live-p a)) (should (equal (buffer-name fallback) doom-fallback-buffer))))
;; modified buffer
(with-current-buffer b
(set-buffer-modified-p t))
(doom-kill-buffer b t)
(should-not (buffer-live-p a))))
;; `doom--cycle-real-buffers' ;; `doom--cycle-real-buffers'
(def-test! kill-buffer-then-show-real-buffer (def-test! kill-buffer-then-show-real-buffer
(with-temp-buffers!! (a b c d) (with-temp-buffers!! (a b c d)
(let-advice!! ((kill-this-buffer :around doom*switch-to-fallback-buffer-maybe))
(dolist (buf (list a b d)) (dolist (buf (list a b d))
(with-current-buffer buf (with-current-buffer buf
(setq-local buffer-file-name "x"))) (setq-local buffer-file-name "x")))
@ -121,13 +120,27 @@
(switch-to-buffer a) (switch-to-buffer a)
(should (eq (current-buffer) a)) (should (eq (current-buffer) a))
(should (eq (selected-window) (get-buffer-window a))) (should (eq (selected-window) (get-buffer-window a)))
(should (doom-kill-buffer a)) (should (kill-this-buffer))
;; eventually end up in the fallback buffer ;; eventually end up in the fallback buffer
(let ((fallback (doom-fallback-buffer))) (let ((fallback (doom-fallback-buffer)))
(while (not (eq (current-buffer) fallback)) (while (not (eq (current-buffer) fallback))
(should (doom-real-buffer-p)) (should (doom-real-buffer-p))
(doom-kill-buffer)) (kill-this-buffer))
(should (eq (current-buffer) fallback))))) (should (eq (current-buffer) fallback))))))
;; `doom-kill-buffer-and-windows'
(def-test! kill-buffer-and-windows
(with-temp-buffers!! (a b)
(switch-to-buffer a) (split-window-horizontally)
(switch-to-buffer b) (split-window-horizontally)
(switch-to-buffer a)
(should (= (length (doom-visible-windows)) 3))
(should (= (length (doom-buffer-list)) 2))
(doom-kill-buffer-and-windows a)
(should-not (buffer-live-p a))
(should (= (length (doom-visible-windows)) 1))))
;; TODO doom/kill-all-buffers ;; TODO doom/kill-all-buffers
;; TODO doom/kill-other-buffers ;; TODO doom/kill-other-buffers