diff options
Diffstat (limited to 'tests/test-custom-file-buffer-copy-path-to-buffer-file-as-kill.el')
| -rw-r--r-- | tests/test-custom-file-buffer-copy-path-to-buffer-file-as-kill.el | 205 |
1 files changed, 0 insertions, 205 deletions
diff --git a/tests/test-custom-file-buffer-copy-path-to-buffer-file-as-kill.el b/tests/test-custom-file-buffer-copy-path-to-buffer-file-as-kill.el deleted file mode 100644 index e7a6f64b..00000000 --- a/tests/test-custom-file-buffer-copy-path-to-buffer-file-as-kill.el +++ /dev/null @@ -1,205 +0,0 @@ -;;; test-custom-file-buffer-copy-path-to-buffer-file-as-kill.el --- Tests for cj/copy-path-to-buffer-file-as-kill -*- lexical-binding: t; -*- - -;;; Commentary: -;; Tests for the cj/copy-path-to-buffer-file-as-kill function from custom-file-buffer.el -;; -;; This function copies the full path of the current buffer's file to the kill ring -;; and returns the path. It signals an error if the buffer is not visiting a file. - -;;; Code: - -(require 'ert) -(require 'testutil-general) - -;; Add modules directory to load path -(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory)) - -;; Stub dependencies before loading the module -(defvar cj/custom-keymap (make-sparse-keymap) - "Stub keymap for testing.") - -;; Stub ps-print package -(provide 'ps-print) - -;; Now load the actual production module -(require 'custom-file-buffer) - -;;; Setup and Teardown - -(defun test-copy-path-setup () - "Set up test environment." - (setq kill-ring nil)) - -(defun test-copy-path-teardown () - "Clean up test environment." - ;; Kill all buffers visiting files in the test directory - (dolist (buf (buffer-list)) - (when (buffer-file-name buf) - (when (string-prefix-p cj/test-base-dir (buffer-file-name buf)) - (with-current-buffer buf - (set-buffer-modified-p nil) - (kill-buffer buf))))) - (cj/delete-test-base-dir) - (setq kill-ring nil)) - -;;; Normal Cases - -(ert-deftest test-copy-path-simple-file () - "Should copy absolute path for simple file buffer." - (test-copy-path-setup) - (unwind-protect - (let* ((test-dir (cj/create-test-subdirectory "test")) - (test-file (expand-file-name "test.txt" test-dir))) - (with-temp-file test-file - (insert "content")) - (with-current-buffer (find-file test-file) - (let ((result (cj/copy-path-to-buffer-file-as-kill))) - (should (equal result test-file)) - (should (equal (car kill-ring) test-file))))) - (test-copy-path-teardown))) - -(ert-deftest test-copy-path-returns-path () - "Should return the path value." - (test-copy-path-setup) - (unwind-protect - (let* ((test-dir (cj/create-test-subdirectory "test")) - (test-file (expand-file-name "test.txt" test-dir))) - (with-temp-file test-file - (insert "content")) - (with-current-buffer (find-file test-file) - (let ((result (cj/copy-path-to-buffer-file-as-kill))) - (should (stringp result)) - (should (equal result test-file))))) - (test-copy-path-teardown))) - -;;; Boundary Cases - -(ert-deftest test-copy-path-unicode-filename () - "Should handle unicode in filename." - (test-copy-path-setup) - (unwind-protect - (let* ((test-dir (cj/create-test-subdirectory "test")) - (test-file (expand-file-name "café.txt" test-dir))) - (with-temp-file test-file - (insert "content")) - (with-current-buffer (find-file test-file) - (cj/copy-path-to-buffer-file-as-kill) - (should (equal (car kill-ring) test-file)))) - (test-copy-path-teardown))) - -(ert-deftest test-copy-path-spaces-in-filename () - "Should handle spaces in filename." - (test-copy-path-setup) - (unwind-protect - (let* ((test-dir (cj/create-test-subdirectory "test")) - (test-file (expand-file-name "my file.txt" test-dir))) - (with-temp-file test-file - (insert "content")) - (with-current-buffer (find-file test-file) - (cj/copy-path-to-buffer-file-as-kill) - (should (equal (car kill-ring) test-file)))) - (test-copy-path-teardown))) - -(ert-deftest test-copy-path-special-chars-filename () - "Should handle special characters in filename." - (test-copy-path-setup) - (unwind-protect - (let* ((test-dir (cj/create-test-subdirectory "test")) - (test-file (expand-file-name "[test]-(1).txt" test-dir))) - (with-temp-file test-file - (insert "content")) - (with-current-buffer (find-file test-file) - (cj/copy-path-to-buffer-file-as-kill) - (should (equal (car kill-ring) test-file)))) - (test-copy-path-teardown))) - -(ert-deftest test-copy-path-very-long-path () - "Should handle very long path." - (test-copy-path-setup) - (unwind-protect - (let* ((test-dir (cj/create-test-subdirectory "test")) - (long-name (make-string 200 ?x)) - (test-file (expand-file-name (concat long-name ".txt") test-dir))) - (with-temp-file test-file - (insert "content")) - (with-current-buffer (find-file test-file) - (cj/copy-path-to-buffer-file-as-kill) - (should (equal (car kill-ring) test-file)))) - (test-copy-path-teardown))) - -(ert-deftest test-copy-path-hidden-file () - "Should handle hidden file." - (test-copy-path-setup) - (unwind-protect - (let* ((test-dir (cj/create-test-subdirectory "test")) - (test-file (expand-file-name ".hidden" test-dir))) - (with-temp-file test-file - (insert "content")) - (with-current-buffer (find-file test-file) - (cj/copy-path-to-buffer-file-as-kill) - (should (equal (car kill-ring) test-file)))) - (test-copy-path-teardown))) - -(ert-deftest test-copy-path-no-extension () - "Should handle file with no extension." - (test-copy-path-setup) - (unwind-protect - (let* ((test-dir (cj/create-test-subdirectory "test")) - (test-file (expand-file-name "README" test-dir))) - (with-temp-file test-file - (insert "content")) - (with-current-buffer (find-file test-file) - (cj/copy-path-to-buffer-file-as-kill) - (should (equal (car kill-ring) test-file)))) - (test-copy-path-teardown))) - -(ert-deftest test-copy-path-symlink-file () - "Should use buffer's filename for symlink." - (test-copy-path-setup) - (unwind-protect - (let* ((test-dir (cj/create-test-subdirectory "test")) - (target-file (expand-file-name "target.txt" test-dir)) - (link-file (expand-file-name "link.txt" test-dir))) - (with-temp-file target-file - (insert "content")) - (make-symbolic-link target-file link-file) - (with-current-buffer (find-file link-file) - (cj/copy-path-to-buffer-file-as-kill) - (should (equal (car kill-ring) (buffer-file-name))))) - (test-copy-path-teardown))) - -(ert-deftest test-copy-path-kill-ring-has-content () - "Should add to kill ring when it already has content." - (test-copy-path-setup) - (unwind-protect - (let* ((test-dir (cj/create-test-subdirectory "test")) - (test-file (expand-file-name "test.txt" test-dir))) - (with-temp-file test-file - (insert "content")) - (kill-new "existing content") - (with-current-buffer (find-file test-file) - (cj/copy-path-to-buffer-file-as-kill) - (should (equal (car kill-ring) test-file)) - (should (equal (cadr kill-ring) "existing content")))) - (test-copy-path-teardown))) - -;;; Error Cases - -(ert-deftest test-copy-path-non-file-buffer () - "Should signal user-error for non-file buffer." - (test-copy-path-setup) - (unwind-protect - (with-temp-buffer - (should-error (cj/copy-path-to-buffer-file-as-kill) :type 'user-error)) - (test-copy-path-teardown))) - -(ert-deftest test-copy-path-scratch-buffer () - "Should signal user-error for *scratch* buffer." - (test-copy-path-setup) - (unwind-protect - (with-current-buffer "*scratch*" - (should-error (cj/copy-path-to-buffer-file-as-kill) :type 'user-error)) - (test-copy-path-teardown))) - -(provide 'test-custom-file-buffer-copy-path-to-buffer-file-as-kill) -;;; test-custom-file-buffer-copy-path-to-buffer-file-as-kill.el ends here |
