aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMatthew White <mehw.is.me@inventati.org>2021-08-01 04:33:38 +0000
committerMatthew White <mehw.is.me@inventati.org>2021-10-20 23:01:53 +0200
commit8b1d213178e5a83d7c6d5424d99abd6928c6640f (patch)
tree8478811ddffc4f6e8900392700fce25c10baf481 /test
parent10e4dd428794f4c65e602f48051b7bd71b12caaf (diff)
basic-persp-set-buffer: test persp-set-buffer
Thoroughly test 'persp-set-buffer'. It should not allow to share buffers between perspectives, and a non-existing buffer passed as argument should be discarded.
Diffstat (limited to 'test')
-rw-r--r--test/test-perspective.el46
1 files changed, 46 insertions, 0 deletions
diff --git a/test/test-perspective.el b/test/test-perspective.el
index f449a6f..7454f16 100644
--- a/test/test-perspective.el
+++ b/test/test-perspective.el
@@ -820,6 +820,52 @@ A non-existing buffer passed as argument should be discarded."
;; Forced cleanup when tests failed.
(persp-test-kill-extra-buffers "*dummy*"))
+(ert-deftest basic-persp-set-buffer ()
+ "Test that `persp-set-buffer' doesn't share buffers between perspectives.
+A non-existing buffer passed as argument should be discarded."
+ ;; Starting conditions.
+ (persp-test-kill-extra-buffers "*dummy*")
+ (persp-test-with-persp
+ (let ((dummy-buffer (get-buffer-create "*dummy*")))
+ (should (buffer-live-p dummy-buffer))
+ ;; Set the new *dummy* buffer in each perspective.
+ (should-not (persp-is-current-buffer dummy-buffer))
+ (persp-set-buffer dummy-buffer)
+ (should (persp-test-buffer-in-persps dummy-buffer "main"))
+ (persp-switch "A")
+ (should-not (persp-is-current-buffer dummy-buffer))
+ (persp-set-buffer dummy-buffer)
+ (should (persp-test-buffer-in-persps dummy-buffer "A"))
+ (persp-switch "B")
+ (should-not (persp-is-current-buffer dummy-buffer))
+ (persp-set-buffer dummy-buffer)
+ (should (persp-test-buffer-in-persps dummy-buffer "B"))
+ ;; Verify that perspectives only stored buffers.
+ (should (cl-every #'bufferp (persp-get-buffers "A")))
+ (should (cl-every #'bufferp (persp-get-buffers "B")))
+ (should (cl-every #'bufferp (persp-get-buffers "main")))
+ ;; Don't add the same buffer more than one time.
+ (persp-set-buffer dummy-buffer)
+ ;; The *dummy* buffer shan't be a shared buffer.
+ (should (eq 0 (cl-count dummy-buffer (persp-get-buffers "A"))))
+ (should (eq 1 (cl-count dummy-buffer (persp-get-buffers "B"))))
+ (should (eq 0 (cl-count dummy-buffer (persp-get-buffers "main"))))
+ ;; Kill the other perspectives except the main.
+ (persp-kill "A")
+ (persp-kill "B")
+ ;; Verify that *dummy* has been killed.
+ (should-not (buffer-live-p dummy-buffer))
+ (should-not (persp-is-current-buffer dummy-buffer))
+ ;; Try to set an unexisting buffer.
+ (let ((buffers (copy-sequence (persp-current-buffers))))
+ (persp-set-buffer "*dummy*")
+ (should (equal buffers (persp-current-buffers)))
+ ;; Try to set a killed buffer.
+ (persp-set-buffer dummy-buffer)
+ (should (equal buffers (persp-current-buffers))))))
+ ;; Forced cleanup when tests failed.
+ (persp-test-kill-extra-buffers "*dummy*"))
+
(ert-deftest basic-persp-switching ()
(persp-test-with-persp
(persp-test-with-temp-buffers (A1 A2 B1 B2 B3)