diff options
| author | Matthew White <mehw.is.me@inventati.org> | 2021-07-30 20:53:52 +0000 |
|---|---|---|
| committer | Matthew White <mehw.is.me@inventati.org> | 2021-10-20 23:01:53 +0200 |
| commit | b8bfe99b192aab95d76a3878f0326fc42c7c827a (patch) | |
| tree | 1036b606e5af22af3c0dfd5c617377495459b6cf | |
| parent | e55f907391d57b1c90f9d72c6b9b3aa7a36a6310 (diff) | |
basic-persp-add-buffer: test persp-add-buffer
Thoroughly test 'persp-add-buffer'. It should allow to share buffers
between perspectives, a non-existing buffer passed as argument should
be discarded.
| -rw-r--r-- | CHANGELOG.md | 1 | ||||
| -rw-r--r-- | test/test-perspective.el | 50 |
2 files changed, 51 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index eb633e0..a14562b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### ERT tests added +- `basic-persp-add-buffer`: evaluate `persp-add-buffer`. - `basic-persp-get-buffer-names`: evaluate `persp-get-buffer-names`. - `basic-persp-get-buffers`: evaluate `persp-get-buffers`. - `basic-persp-test-buffer-in-persps`: evaluate `persp-test-buffer-in-persps`. diff --git a/test/test-perspective.el b/test/test-perspective.el index 8356bef..f449a6f 100644 --- a/test/test-perspective.el +++ b/test/test-perspective.el @@ -770,6 +770,56 @@ Expect the list of a perspective's live buffers." ;; cleanup (persp-test-kill-extra-buffers " *foo*")) +(ert-deftest basic-persp-add-buffer () + "Test that `persp-add-buffer' shares 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)) + ;; Add the new *dummy* buffer to each perspective. + (should-not (persp-is-current-buffer dummy-buffer)) + (persp-add-buffer dummy-buffer) + (should (persp-test-buffer-in-persps dummy-buffer "main")) + (persp-switch "A") + (should-not (persp-is-current-buffer dummy-buffer)) + (persp-add-buffer dummy-buffer) + (should (persp-test-buffer-in-persps dummy-buffer "main" "A")) + (persp-switch "B") + (should-not (persp-is-current-buffer dummy-buffer)) + (persp-add-buffer dummy-buffer) + (should (persp-test-buffer-in-persps dummy-buffer "main" "A" "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-add-buffer dummy-buffer) + ;; The *dummy* buffer should be a shared buffer. + (should (eq 1 (cl-count dummy-buffer (persp-get-buffers "A")))) + (should (eq 1 (cl-count dummy-buffer (persp-get-buffers "B")))) + (should (eq 1 (cl-count dummy-buffer (persp-get-buffers "main")))) + ;; Kill the other perspectives sharing *dummy*. + (persp-kill "A") + (persp-kill "B") + ;; The *dummy* buffer should still be there. + (should (buffer-live-p dummy-buffer)) + (should (persp-is-current-buffer dummy-buffer)) + ;; Kill the *dummy* buffer (also cleanup). + (persp-remove-buffer dummy-buffer) + (should-not (buffer-live-p dummy-buffer)) + (should-not (persp-is-current-buffer dummy-buffer)) + ;; Try to add an unexisting buffer. + (let ((buffers (copy-sequence (persp-current-buffers)))) + (persp-add-buffer "*dummy*") + (should (equal buffers (persp-current-buffers))) + ;; Try to add a killed buffer. + (persp-add-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) |
