diff --git a/tests/workgroups2-tests.el b/tests/workgroups2-tests.el index 72b70bb3a8861de73bda69c4d8eec7fe0181cccf..1a58733f2217cde99c0e13e348c59d28f1c1b522 100644 --- a/tests/workgroups2-tests.el +++ b/tests/workgroups2-tests.el @@ -154,18 +154,25 @@ ) (ert-deftest 310-frames () + ;; Create some frames (should wg-control-frames) (make-frame) (make-frame) (should (wg-modified-p)) (should (= (length (frame-list)) 3)) (should workgroups-mode) + + ;; Save (let (message-log-max) (wg-save-session)) + + ;; Reset to 1 frame (should-not (wg-session-modified (wg-current-session))) (should (= (length (wg-session-parameter 'frame-list)) 2)) (delete-other-frames) (should (= (length (frame-list)) 1)) + + ;; Restore frames (wg-reload-session) ;;(should (= (length (wg-session-parameter 'frame-list)) 2)) (should (= (length (frame-list)) 3)) @@ -173,5 +180,45 @@ (let (message-log-max) (wg-save-session))) + + +;; Bugs + +;; https://github.com/pashinin/workgroups2/issues/48 +(ert-deftest 500-bug-48 () + ;; Create a bunch of files for 2 workgroups + (make-directory "/tmp/wg1" t) + (make-directory "/tmp/wg2" t) + (dotimes (i 20) + (let ((file (format "/tmp/wg1/file_%.2d.\n" (1+ i)))) + (unless (file-exists-p file) + (write-file file)) + (find-file file))) + (wg-create-workgroup "wg2" t) + (dotimes (i 20) + (let ((file (format "/tmp/wg2/file_%.2d.\n" (+ i 41)))) + (unless (file-exists-p file) + (write-file file)) + (find-file file))) + + ;; Reopen, resave + (workgroups-mode 0) + (workgroups-mode 1) + (wg-save-session) ;; this removes BUF objects, I think garbage collection + + ;;(should (= (length (wg-session-buf-list (wg-current-session))) 3)) + (let* ((bufs (wg-session-buf-list (wg-current-session))) + (bufs-len (length bufs)) + (wg1 (wg-get-workgroup "First workgroup")) + (wg2 (wg-get-workgroup "wg2")) + (bufs1 (wg-workgroup-associated-bufs wg1)) + (bufs2 (wg-workgroup-associated-bufs wg2)) + (len1 (length bufs1)) + (len2 (length bufs2))) + ;;(wg-workgroup-associated-bufs) + (should (>= bufs-len 40)) + (should (>= len1 20)) + (should (>= len2 20)))) + (provide 'workgroups2-tests) ;;; workgroups2-tests.el ends here