aboutsummaryrefslogtreecommitdiff
path: root/tests/test-media-utils.el
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-media-utils.el')
-rw-r--r--tests/test-media-utils.el26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/test-media-utils.el b/tests/test-media-utils.el
index 85ee826f..9384d568 100644
--- a/tests/test-media-utils.el
+++ b/tests/test-media-utils.el
@@ -101,5 +101,31 @@
(should (member "yt-dlp" captured))
(should (member "https://example.com/v" captured))))
+;; ---------------------------- cj/select-media-player -------------------------
+
+(ert-deftest test-media-select-player-normal-sets-default-on-choice ()
+ "Normal: choosing an available player updates `cj/default-media-player'."
+ (let ((cj/media-players '((mpv . (:name "mpv" :command "mpv"))
+ (vlc . (:name "VLC" :command "vlc"))))
+ (cj/default-media-player 'vlc))
+ (cl-letf (((symbol-function 'cj/get-available-media-players)
+ (lambda () '(mpv vlc)))
+ ((symbol-function 'completing-read) (lambda (&rest _) "mpv"))
+ ((symbol-function 'message) #'ignore))
+ (cj/select-media-player)
+ (should (eq cj/default-media-player 'mpv)))))
+
+(ert-deftest test-media-select-player-boundary-no-match-keeps-default ()
+ "Boundary: a selection matching no player leaves the default unchanged."
+ (let ((cj/media-players '((mpv . (:name "mpv" :command "mpv"))
+ (vlc . (:name "VLC" :command "vlc"))))
+ (cj/default-media-player 'vlc))
+ (cl-letf (((symbol-function 'cj/get-available-media-players)
+ (lambda () '(mpv vlc)))
+ ((symbol-function 'completing-read) (lambda (&rest _) "Nonexistent"))
+ ((symbol-function 'message) #'ignore))
+ (cj/select-media-player)
+ (should (eq cj/default-media-player 'vlc)))))
+
(provide 'test-media-utils)
;;; test-media-utils.el ends here