diff options
| author | Matthew White <mehw.is.me@inventati.org> | 2021-08-28 04:46:40 +0000 |
|---|---|---|
| committer | Matthew White <mehw.is.me@inventati.org> | 2021-10-21 00:22:43 +0200 |
| commit | 7508e4861bcf16739505bae945f62589bf6b9389 (patch) | |
| tree | 7971dff11112056b1a7e05fc9efdc372176f27f1 /test | |
| parent | 19cb7e7b71fced0dc17c900f9f41c1b026959b79 (diff) | |
basic-persp-forget-buffer: test persp-forget-buffer
Test 'persp-forget-buffer' and 'persp-remove-buffer', also test the
function 'persp-set-buffer'.
The function 'persp-forget-buffer' should disassociate buffers with
perspectives, never killing them.
The function 'persp-remove-buffer' should disassociate buffers when
they are shared between perspectives and kill unshared buffers, aka
buffers not found in any other perspective.
Diffstat (limited to 'test')
| -rw-r--r-- | test/test-perspective.el | 239 |
1 files changed, 239 insertions, 0 deletions
diff --git a/test/test-perspective.el b/test/test-perspective.el index 7977344..bad6a3c 100644 --- a/test/test-perspective.el +++ b/test/test-perspective.el @@ -1287,6 +1287,245 @@ the number of buffers, shared or not, that it has, though." ;; Forced cleanup when tests failed. (persp-test-kill-extra-buffers " *foo*" "*dummy*")) +(ert-deftest basic-persp-forget-buffer () + "Test `persp-forget-buffer' and `persp-remove-buffer'. + +The former should disassociate buffers with perspectives, never +killing them, the latter disassociates shared buffers and kills +unshared ones, aka buffers not found in any other perspective." + (persp-test-with-persp + (let (dummy-buffer scratch-buffer scratch-buffer-A) + ;; switch to *scratch* in main + (should (setq scratch-buffer (switch-to-buffer "*scratch*"))) + (should (eq scratch-buffer (current-buffer))) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-match-scratch-buffers scratch-buffer)) + ;; switch to *dummy* in main + (should (setq dummy-buffer (switch-to-buffer "*dummy*"))) + (should (eq dummy-buffer (current-buffer))) + (should (persp-test-buffer-in-persps dummy-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-match-scratch-buffers scratch-buffer)) + ;; disassociate *dummy* with main + (persp-forget-buffer dummy-buffer) + (should (buffer-live-p dummy-buffer)) + (should (eq scratch-buffer (current-buffer))) + (should (persp-test-buffer-in-persps dummy-buffer)) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-match-scratch-buffers scratch-buffer)) + ;; disassociate unassociated *dummy* + (persp-forget-buffer dummy-buffer) + (should (buffer-live-p dummy-buffer)) + (should (eq scratch-buffer (current-buffer))) + (should (persp-test-buffer-in-persps dummy-buffer)) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-match-scratch-buffers scratch-buffer)) + ;; remove unassociated *dummy* + (persp-remove-buffer dummy-buffer) + (should-not (buffer-live-p dummy-buffer)) + (should (eq scratch-buffer (current-buffer))) + (should-not (persp-test-buffer-in-persps dummy-buffer)) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-match-scratch-buffers scratch-buffer)) + ;; switch to *dummy* in main + (should (setq dummy-buffer (switch-to-buffer "*dummy*"))) + (should (eq dummy-buffer (current-buffer))) + (should (persp-test-buffer-in-persps dummy-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-match-scratch-buffers scratch-buffer)) + ;; remove *dummy* from main + (persp-remove-buffer dummy-buffer) + (should-not (buffer-live-p dummy-buffer)) + (should (eq scratch-buffer (current-buffer))) + (should-not (persp-test-buffer-in-persps dummy-buffer)) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-match-scratch-buffers scratch-buffer)) + ;; switch to *dummy* in main + (should (setq dummy-buffer (switch-to-buffer "*dummy*"))) + (should (eq dummy-buffer (current-buffer))) + (should (persp-test-buffer-in-persps dummy-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-match-scratch-buffers scratch-buffer)) + ;; switch to new perspective A + (persp-switch "A") + (should (setq scratch-buffer-A (get-buffer "*scratch* (A)"))) + (should (eq scratch-buffer-A (current-buffer))) + (should (= (length (persp-get-buffers "A")) 1)) + (should (persp-test-buffer-in-persps dummy-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq dummy-buffer (current-buffer)))) + ;; disassociate unassociated *dummy* + (persp-forget-buffer dummy-buffer) + (should (buffer-live-p dummy-buffer)) + (should (eq scratch-buffer-A (current-buffer))) + (should (= (length (persp-get-buffers "A")) 1)) + (should (persp-test-buffer-in-persps dummy-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq dummy-buffer (current-buffer)))) + ;; remove unassociated *dummy* + (persp-remove-buffer dummy-buffer) + (should (buffer-live-p dummy-buffer)) + (should (eq scratch-buffer-A (current-buffer))) + (should (= (length (persp-get-buffers "A")) 1)) + (should (persp-test-buffer-in-persps dummy-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq dummy-buffer (current-buffer)))) + ;; switch to *dummy* in A + (should (switch-to-buffer dummy-buffer)) + (should (eq dummy-buffer (current-buffer))) + (should (= (length (persp-get-buffers "A")) 2)) + (should (persp-test-buffer-in-persps dummy-buffer "main" "A")) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq dummy-buffer (current-buffer)))) + ;; disassociate *dummy* with A + (persp-forget-buffer dummy-buffer) + (should (buffer-live-p dummy-buffer)) + (should (eq scratch-buffer-A (current-buffer))) + (should (= (length (persp-get-buffers "A")) 1)) + (should (persp-test-buffer-in-persps dummy-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq dummy-buffer (current-buffer)))) + ;; switch to *dummy* in A + (should (switch-to-buffer dummy-buffer)) + (should (eq dummy-buffer (current-buffer))) + (should (= (length (persp-get-buffers "A")) 2)) + (should (persp-test-buffer-in-persps dummy-buffer "main" "A")) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq dummy-buffer (current-buffer)))) + ;; remove *dummy* from A + (persp-remove-buffer dummy-buffer) + (should (buffer-live-p dummy-buffer)) + (should (eq scratch-buffer-A (current-buffer))) + (should (= (length (persp-get-buffers "A")) 1)) + (should (persp-test-buffer-in-persps dummy-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq dummy-buffer (current-buffer)))) + ;; set *dummy* to A + (persp-set-buffer dummy-buffer) + (should (eq scratch-buffer-A (current-buffer))) + (should (= (length (persp-get-buffers "A")) 2)) + (should (persp-test-buffer-in-persps dummy-buffer "A")) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq scratch-buffer (current-buffer)))) + ;; disassociate *dummy* with A + (persp-forget-buffer dummy-buffer) + (should (buffer-live-p dummy-buffer)) + (should (eq scratch-buffer-A (current-buffer))) + (should (= (length (persp-get-buffers "A")) 1)) + (should (persp-test-buffer-in-persps dummy-buffer)) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq scratch-buffer (current-buffer)))) + ;; disassociate unassociated *dummy* + (persp-forget-buffer dummy-buffer) + (should (buffer-live-p dummy-buffer)) + (should (eq scratch-buffer-A (current-buffer))) + (should (= (length (persp-get-buffers "A")) 1)) + (should (persp-test-buffer-in-persps dummy-buffer)) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq scratch-buffer (current-buffer)))) + ;; remove unassociated *dummy* + (persp-remove-buffer dummy-buffer) + (should-not (buffer-live-p dummy-buffer)) + (should (eq scratch-buffer-A (current-buffer))) + (should (= (length (persp-get-buffers "A")) 1)) + (should-not (persp-test-buffer-in-persps dummy-buffer)) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq scratch-buffer (current-buffer)))) + ;; switch to *dummy* in A + (should (setq dummy-buffer (switch-to-buffer "*dummy*"))) + (should (eq dummy-buffer (current-buffer))) + (should (= (length (persp-get-buffers "A")) 2)) + (should (persp-test-buffer-in-persps dummy-buffer "A")) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq scratch-buffer (current-buffer)))) + ;; remove *dummy* from A + (persp-remove-buffer dummy-buffer) + (should-not (buffer-live-p dummy-buffer)) + (should (eq scratch-buffer-A (current-buffer))) + (should (= (length (persp-get-buffers "A")) 1)) + (should-not (persp-test-buffer-in-persps dummy-buffer)) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq scratch-buffer (current-buffer)))) + ;; disassociate "*scratch* (A)" with A + (persp-forget-buffer scratch-buffer-A) + (should (buffer-live-p scratch-buffer-A)) + (should (eq scratch-buffer-A (current-buffer))) + (should (= (length (persp-get-buffers "A")) 1)) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq scratch-buffer (current-buffer)))) + ;; remove "*scratch* (A)" from A + (persp-remove-buffer scratch-buffer-A) + (should (buffer-live-p scratch-buffer-A)) + (should (eq scratch-buffer-A (current-buffer))) + (should (= (length (persp-get-buffers "A")) 1)) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "main" + (should (eq scratch-buffer (current-buffer)))) + ;; switch to perspective main + (persp-switch "main") + (should (eq scratch-buffer (current-buffer))) + (should (= (length (persp-get-buffers "A")) 1)) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "A" + (should (eq scratch-buffer-A (current-buffer)))) + ;; set "*scratch* (A)" to main + (persp-set-buffer scratch-buffer-A) + (should (eq scratch-buffer (current-buffer))) + (should (= (length (persp-get-buffers "A")) 1)) + (should (persp-test-buffer-in-persps scratch-buffer "main")) + (should (persp-test-buffer-in-persps scratch-buffer-A "main" "A")) + (should (persp-test-match-scratch-buffers scratch-buffer scratch-buffer-A)) + (with-perspective "A" + (should (eq scratch-buffer-A (current-buffer)))))) + ;; forced cleanup when tests failed + (persp-test-kill-extra-buffers "*dummy*")) + (ert-deftest basic-persp-switching () "Test switching buffers and perspectives. |
