summaryrefslogtreecommitdiff
path: root/tests/test-video-audio-recording-toggle-functions.el
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-video-audio-recording-toggle-functions.el')
-rw-r--r--tests/test-video-audio-recording-toggle-functions.el185
1 files changed, 0 insertions, 185 deletions
diff --git a/tests/test-video-audio-recording-toggle-functions.el b/tests/test-video-audio-recording-toggle-functions.el
deleted file mode 100644
index 2355ab4f..00000000
--- a/tests/test-video-audio-recording-toggle-functions.el
+++ /dev/null
@@ -1,185 +0,0 @@
-;;; test-video-audio-recording-toggle-functions.el --- Tests for toggle functions -*- lexical-binding: t; -*-
-
-;;; Commentary:
-;; Unit tests for cj/video-recording-toggle and cj/audio-recording-toggle functions.
-;; Tests start/stop toggle behavior for recording processes.
-
-;;; Code:
-
-(require 'ert)
-
-;; Stub dependencies before loading the module
-(defvar cj/custom-keymap (make-sparse-keymap)
- "Stub keymap for testing.")
-
-;; Stub directory variables
-(defvar video-recordings-dir "/tmp/video-recordings/")
-(defvar audio-recordings-dir "/tmp/audio-recordings/")
-
-;; Now load the actual production module
-(require 'video-audio-recording)
-
-;;; Setup and Teardown
-
-(defun test-toggle-setup ()
- "Reset process variables before each test."
- (setq cj/video-recording-ffmpeg-process nil)
- (setq cj/audio-recording-ffmpeg-process nil)
- (setq cj/recording-mic-device "test-mic")
- (setq cj/recording-system-device "test-monitor"))
-
-(defun test-toggle-teardown ()
- "Clean up process variables after each test."
- (when cj/video-recording-ffmpeg-process
- (ignore-errors (delete-process cj/video-recording-ffmpeg-process)))
- (when cj/audio-recording-ffmpeg-process
- (ignore-errors (delete-process cj/audio-recording-ffmpeg-process)))
- (setq cj/video-recording-ffmpeg-process nil)
- (setq cj/audio-recording-ffmpeg-process nil)
- (setq cj/recording-mic-device nil)
- (setq cj/recording-system-device nil))
-
-;;; Video Toggle - Normal Cases
-
-(ert-deftest test-video-audio-recording-video-toggle-normal-starts-when-not-recording ()
- "Test that video toggle starts recording when not currently recording."
- (test-toggle-setup)
- (unwind-protect
- (let ((start-called nil))
- (cl-letf (((symbol-function 'cj/ffmpeg-record-video)
- (lambda (_dir) (setq start-called t))))
- (cj/video-recording-toggle nil)
- (should start-called)))
- (test-toggle-teardown)))
-
-(ert-deftest test-video-audio-recording-video-toggle-normal-stops-when-recording ()
- "Test that video toggle stops recording when currently recording."
- (test-toggle-setup)
- (unwind-protect
- (let ((stop-called nil)
- (fake-process (make-process :name "test-video" :command '("sleep" "1000"))))
- (setq cj/video-recording-ffmpeg-process fake-process)
- (cl-letf (((symbol-function 'cj/video-recording-stop)
- (lambda () (setq stop-called t))))
- (cj/video-recording-toggle nil)
- (should stop-called))
- (ignore-errors (delete-process fake-process)))
- (test-toggle-teardown)))
-
-(ert-deftest test-video-audio-recording-video-toggle-normal-uses-default-directory ()
- "Test that video toggle uses default directory when no prefix arg."
- (test-toggle-setup)
- (unwind-protect
- (let ((recorded-dir nil))
- (cl-letf (((symbol-function 'cj/ffmpeg-record-video)
- (lambda (dir) (setq recorded-dir dir))))
- (cj/video-recording-toggle nil)
- (should (equal video-recordings-dir recorded-dir))))
- (test-toggle-teardown)))
-
-(ert-deftest test-video-audio-recording-video-toggle-normal-prompts-for-location-with-prefix ()
- "Test that video toggle prompts for location with prefix arg."
- (test-toggle-setup)
- (unwind-protect
- (let ((prompt-called nil)
- (recorded-dir nil))
- (cl-letf (((symbol-function 'read-directory-name)
- (lambda (_prompt) (setq prompt-called t) "/custom/path/"))
- ((symbol-function 'file-directory-p)
- (lambda (_dir) t)) ; Directory exists
- ((symbol-function 'cj/ffmpeg-record-video)
- (lambda (dir) (setq recorded-dir dir))))
- (cj/video-recording-toggle t)
- (should prompt-called)
- (should (equal "/custom/path/" recorded-dir))))
- (test-toggle-teardown)))
-
-;;; Audio Toggle - Normal Cases
-
-(ert-deftest test-video-audio-recording-audio-toggle-normal-starts-when-not-recording ()
- "Test that audio toggle starts recording when not currently recording."
- (test-toggle-setup)
- (unwind-protect
- (let ((start-called nil))
- (cl-letf (((symbol-function 'cj/ffmpeg-record-audio)
- (lambda (_dir) (setq start-called t))))
- (cj/audio-recording-toggle nil)
- (should start-called)))
- (test-toggle-teardown)))
-
-(ert-deftest test-video-audio-recording-audio-toggle-normal-stops-when-recording ()
- "Test that audio toggle stops recording when currently recording."
- (test-toggle-setup)
- (unwind-protect
- (let ((stop-called nil)
- (fake-process (make-process :name "test-audio" :command '("sleep" "1000"))))
- (setq cj/audio-recording-ffmpeg-process fake-process)
- (cl-letf (((symbol-function 'cj/audio-recording-stop)
- (lambda () (setq stop-called t))))
- (cj/audio-recording-toggle nil)
- (should stop-called))
- (ignore-errors (delete-process fake-process)))
- (test-toggle-teardown)))
-
-(ert-deftest test-video-audio-recording-audio-toggle-normal-uses-default-directory ()
- "Test that audio toggle uses default directory when no prefix arg."
- (test-toggle-setup)
- (unwind-protect
- (let ((recorded-dir nil))
- (cl-letf (((symbol-function 'cj/ffmpeg-record-audio)
- (lambda (dir) (setq recorded-dir dir))))
- (cj/audio-recording-toggle nil)
- (should (equal audio-recordings-dir recorded-dir))))
- (test-toggle-teardown)))
-
-(ert-deftest test-video-audio-recording-audio-toggle-normal-prompts-for-location-with-prefix ()
- "Test that audio toggle prompts for location with prefix arg."
- (test-toggle-setup)
- (unwind-protect
- (let ((prompt-called nil)
- (recorded-dir nil))
- (cl-letf (((symbol-function 'read-directory-name)
- (lambda (_prompt) (setq prompt-called t) "/custom/path/"))
- ((symbol-function 'file-directory-p)
- (lambda (_dir) t)) ; Directory exists
- ((symbol-function 'cj/ffmpeg-record-audio)
- (lambda (dir) (setq recorded-dir dir))))
- (cj/audio-recording-toggle t)
- (should prompt-called)
- (should (equal "/custom/path/" recorded-dir))))
- (test-toggle-teardown)))
-
-;;; Boundary Cases
-
-(ert-deftest test-video-audio-recording-video-toggle-boundary-creates-directory ()
- "Test that video toggle creates directory if it doesn't exist."
- (test-toggle-setup)
- (unwind-protect
- (let ((mkdir-called nil))
- (cl-letf (((symbol-function 'file-directory-p)
- (lambda (_dir) nil))
- ((symbol-function 'make-directory)
- (lambda (_dir _parents) (setq mkdir-called t)))
- ((symbol-function 'cj/ffmpeg-record-video)
- (lambda (_dir) nil)))
- (cj/video-recording-toggle nil)
- (should mkdir-called)))
- (test-toggle-teardown)))
-
-(ert-deftest test-video-audio-recording-audio-toggle-boundary-creates-directory ()
- "Test that audio toggle creates directory if it doesn't exist."
- (test-toggle-setup)
- (unwind-protect
- (let ((mkdir-called nil))
- (cl-letf (((symbol-function 'file-directory-p)
- (lambda (_dir) nil))
- ((symbol-function 'make-directory)
- (lambda (_dir _parents) (setq mkdir-called t)))
- ((symbol-function 'cj/ffmpeg-record-audio)
- (lambda (_dir) nil)))
- (cj/audio-recording-toggle nil)
- (should mkdir-called)))
- (test-toggle-teardown)))
-
-(provide 'test-video-audio-recording-toggle-functions)
-;;; test-video-audio-recording-toggle-functions.el ends here