Skip to content

Commit

Permalink
Update GitHub actions
Browse files Browse the repository at this point in the history
  • Loading branch information
jamescherti committed Aug 14, 2024
1 parent cac6847 commit cf487fd
Showing 1 changed file with 66 additions and 32 deletions.
98 changes: 66 additions & 32 deletions tests/test-easysession.el
Original file line number Diff line number Diff line change
Expand Up @@ -28,43 +28,73 @@
(require 'dired)
(require 'easysession)

(defun test-easysession-save-load ()
(defun test-easysession ()
"Test `easysession-load' and `easysession-save'.
It tests persisting and restoring: file editing buffers and indirect-buffer."
(interactive)
;; Remove and add handlers
(easysession-remove-save-handler 'easysession--handler-save-file-editing-buffers)
(easysession-remove-save-handler 'easysession--handler-save-indirect-buffers)
(easysession-remove-load-handler 'easysession--handler-load-indirect-buffers)
(easysession-remove-load-handler 'easysession--handler-load-file-editing-buffers)
(unless (null easysession--load-handlers)
(error "Load handlers is not empty after removal"))
(unless (null easysession--save-handlers)
(error "Save handlers is not empty after removal"))

(easysession-add-save-handler 'easysession--handler-save-file-editing-buffers)
(easysession-add-save-handler 'easysession--handler-save-indirect-buffers)
(easysession-add-load-handler 'easysession--handler-load-file-editing-buffers)
(easysession-add-load-handler 'easysession--handler-load-indirect-buffers)
(unless (equal easysession--load-handlers
'(easysession--handler-load-file-editing-buffers
easysession--handler-load-indirect-buffers))
(error "Load handlers weren't added correctly"))
(unless (equal easysession--save-handlers
'(easysession--handler-save-file-editing-buffers
easysession--handler-save-indirect-buffers))
(error "Save handlers weren't added correctly"))

;; Create buffers
(let ((buffer1-path "~/buffer1")
(buffer2-path "~/buffer2")
(dired-buffer-path "~/")
(dired-buffer nil)
(buffer1 nil)
(buffer2 nil)
(indirect-buffer1-name "indirect-buffer1")
(indirect-buffer1 nil))
(indirect-buffer1 nil)
(easysession--before-load-hook-executed nil)
(easysession--after-load-hook-executed nil)
(easysession--before-save-hook-executed nil)
(easysession--after-save-hook-executed nil)
(easysession--new-session-hook-executed nil))
;; Switch to the test session
(when easysession--new-session-hook-executed
(error "The easysession-new-session-hook is supposed to be set to nil."))
(add-hook 'easysession-new-session-hook
#'(lambda() (setq easysession--new-session-hook-executed t)))
(easysession-switch-to "test")
(unless easysession--new-session-hook-executed
(error "The easysession-new-session-hook was not executed."))

;; Add other hooks
(add-hook 'easysession-before-load-hook
#'(lambda()
(when (get-file-buffer buffer1-path)
(error "before-load-hook: The second buffer is still open"))
(setq easysession--before-load-hook-executed t)))
(add-hook 'easysession-after-load-hook
#'(lambda() (setq easysession--before-save-hook-executed t)))

(add-hook 'easysession-before-save-hook
#'(lambda()
(unless (get-file-buffer buffer1-path)
(error "before-save-hook: The second buffer is still open"))
(setq easysession--after-load-hook-executed t)))
(add-hook 'easysession-after-save-hook
#'(lambda() (setq easysession--after-save-hook-executed t)))

;; Remove and add handlers
(easysession-remove-save-handler 'easysession--handler-save-file-editing-buffers)
(easysession-remove-save-handler 'easysession--handler-save-indirect-buffers)
(easysession-remove-load-handler 'easysession--handler-load-indirect-buffers)
(easysession-remove-load-handler 'easysession--handler-load-file-editing-buffers)
(unless (null easysession--load-handlers)
(error "Load handlers is not empty after removal"))
(unless (null easysession--save-handlers)
(error "Save handlers is not empty after removal"))

(easysession-add-save-handler 'easysession--handler-save-file-editing-buffers)
(easysession-add-save-handler 'easysession--handler-save-indirect-buffers)
(easysession-add-load-handler 'easysession--handler-load-file-editing-buffers)
(easysession-add-load-handler 'easysession--handler-load-indirect-buffers)
(unless (equal easysession--load-handlers
'(easysession--handler-load-file-editing-buffers
easysession--handler-load-indirect-buffers))
(error "Load handlers weren't added correctly"))
(unless (equal easysession--save-handlers
'(easysession--handler-save-file-editing-buffers
easysession--handler-save-indirect-buffers))
(error "Save handlers weren't added correctly"))

;; Create buffers
(with-temp-buffer (insert "hello world")
(write-file buffer1-path))
Expand Down Expand Up @@ -93,6 +123,10 @@ It tests persisting and restoring: file editing buffers and indirect-buffer."

;; Save session and kill buffers
(easysession-save)
(unless easysession--after-save-hook-executed
(error "The easysession-after-save-hook was not executed"))
(unless easysession--before-save-hook-executed
(error "The easysession-before-save-hook was not executed"))
(kill-buffer buffer1)
(when (get-file-buffer buffer1-path)
(error "The second buffer is still open"))
Expand All @@ -111,6 +145,11 @@ It tests persisting and restoring: file editing buffers and indirect-buffer."

;; Load session
(easysession-load)
(unless easysession--after-load-hook-executed
(error "The easysession-after-load-hook was not executed"))
(unless easysession--before-load-hook-executed
(error "The easysession-before-load-hook was not executed"))

(setq buffer1 (get-file-buffer buffer1-path))
(when (not buffer1)
(error "Failed to first buffer"))
Expand All @@ -135,12 +174,7 @@ It tests persisting and restoring: file editing buffers and indirect-buffer."
"The Dired buffer points to the wrong path")))

;; Success
(message "Success: test-easysession-save-load")))

(defun test-easysession ()
"Run easysession tests."
(interactive)
(test-easysession-save-load))
(message "Success: test-easysession")))

(provide 'test-easysession)
;;; test-easysession.el ends here

0 comments on commit cf487fd

Please sign in to comment.