feature/evil: generalize custom file modifiers + unit test

This commit is contained in:
Henrik Lissner 2017-04-14 22:16:28 -04:00
parent 9fce3ca4fd
commit f5b3baf09e
2 changed files with 97 additions and 45 deletions

View file

@ -2,20 +2,51 @@
(require! :feature evil t)
(defalias 'do-it '+evil*ex-replace-special-filenames)
(def-test-group! feature/evil
:disabled t
(ert-deftest custom-file-modifiers ()
(let ((buffer-file-name "~/.emacs.d/test/modules/feature/test-evil.el")
(default-directory "~/.emacs.d/test/modules"))
(should (equal (+evil*ex-replace-special-filenames "%") "feature/test-evil.el"))
(should (equal (+evil*ex-replace-special-filenames "%:r") "feature/test-evil"))
(should (equal (+evil*ex-replace-special-filenames "%:e") "el"))
;; TODO :h
;; TODO :t
;; TODO :.
;; TODO :~
;; TODO :s
;; TODO :S
(should (equal (+evil*ex-replace-special-filenames "%:P") (doom-project-root)))
(should (equal (file-truename (+evil*ex-replace-special-filenames "%:p"))
(file-truename buffer-file-name))))))
(let ((buffer-file-name "~/.emacs.d/test/modules/feature/test-evil.el")
(default-directory "~/.emacs.d/test/modules/"))
(should (equal (do-it "%") "feature/test-evil.el"))
(should (equal (do-it "%:r") "feature/test-evil"))
(should (equal (do-it "%:r.elc") "feature/test-evil.elc"))
(should (equal (do-it "%:e") "el"))
(should (equal (do-it "%:p") (expand-file-name buffer-file-name)))
(should (equal (do-it "%:h") "feature"))
(should (equal (do-it "%:t") "test-evil.el"))
(should (equal (do-it "%:.") "feature/test-evil.el"))
(should (equal (do-it "%:~") "~/.emacs.d/test/modules/feature/test-evil.el"))
(should (equal (do-it "%:s?e?x?") "fxature/test-evil.el"))
(should (equal (do-it "%:gs?e?x?") "fxaturx/txst-xvil.xl"))
(should (equal (do-it "%:P/") (doom-project-root)))
(should (equal (file-truename (do-it "%:p"))
(file-truename buffer-file-name)))))
(ert-deftest custom-nested-file-modifiers ()
(let ((buffer-file-name "~/vim/src/version.c")
(default-directory "~/vim/"))
(should (equal (do-it "%:p") (expand-file-name "~/vim/src/version.c")))
(should (equal (do-it "%:p:.") "src/version.c"))
(should (equal (do-it "%:p:~") "~/vim/src/version.c"))
(should (equal (do-it "%:h") "src"))
(should (equal (do-it "%:p:h") (expand-file-name "~/vim/src")))
(should (equal (do-it "%:p:h:h") (expand-file-name "~/vim")))
(should (equal (do-it "%:t") "version.c"))
(should (equal (do-it "%:p:t") "version.c"))
(should (equal (do-it "%:r") "src/version"))
(should (equal (do-it "%:p:r") (expand-file-name "~/vim/src/version")))
(should (equal (do-it "%:t:r") "version"))))
(ert-deftest custom-empty-file-modifiers ()
(let (buffer-file-name default-directory)
(should (equal (do-it "%") ""))
(should (equal (do-it "%:r") ""))
(should (equal (do-it "%:e") ""))
(should (equal (do-it "%:h") ""))
(should (equal (do-it "%:t") ""))
(should (equal (do-it "%:.") ""))
(should (equal (do-it "%:~") ""))
(should (equal (do-it "%:s?e?x?") ""))
(should (equal (do-it "%:gs?e?x?") ""))
(should (equal (do-it "%:P") "")))))