diff options
Diffstat (limited to 'clang-include-fixer/tool/clang-include-fixer-test.el')
-rw-r--r-- | clang-include-fixer/tool/clang-include-fixer-test.el | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/clang-include-fixer/tool/clang-include-fixer-test.el b/clang-include-fixer/tool/clang-include-fixer-test.el new file mode 100644 index 00000000..d66d5300 --- /dev/null +++ b/clang-include-fixer/tool/clang-include-fixer-test.el @@ -0,0 +1,65 @@ +;;; clang-include-fixer-test.el --- unit tests for clang-include-fixer.el -*- lexical-binding: t; -*- + +;;; Commentary: + +;; Unit tests for clang-include-fixer.el. + +;;; Code: + +(require 'clang-include-fixer) + +(require 'cc-mode) +(require 'ert) + +(ert-deftest clang-include-fixer--insert-line () + "Unit test for `clang-include-fixer--insert-line'." + (with-temp-buffer + (insert "aa\nab\nac\nad\n") + (let ((from (current-buffer))) + (with-temp-buffer + (insert "aa\nac\nad\n") + (let ((to (current-buffer))) + (should (clang-include-fixer--insert-line from to)) + (should (equal (buffer-string) "aa\nab\nac\nad\n"))))) + (should (equal (buffer-string) "aa\nab\nac\nad\n")))) + +(ert-deftest clang-include-fixer--insert-line-diff-on-empty-line () + "Unit test for `clang-include-fixer--insert-line'." + (with-temp-buffer + (insert "aa\nab\n\nac\nad\n") + (let ((from (current-buffer))) + (with-temp-buffer + (insert "aa\n\nac\nad\n") + (let ((to (current-buffer))) + (should (clang-include-fixer--insert-line from to)) + (should (equal (buffer-string) "aa\nab\n\nac\nad\n"))))) + (should (equal (buffer-string) "aa\nab\n\nac\nad\n")))) + +(ert-deftest clang-include-fixer--symbol-at-point () + "Unit test for `clang-include-fixer--symbol-at-point'." + (with-temp-buffer + (insert "a+bbb::cc") + (c++-mode) + (goto-char (point-min)) + (should (equal (clang-include-fixer--symbol-at-point) "a")) + (forward-char) + ;; Emacs treats the character immediately following a symbol as part of the + ;; symbol. + (should (equal (clang-include-fixer--symbol-at-point) "a")) + (forward-char) + (should (equal (clang-include-fixer--symbol-at-point) "bbb::cc")) + (goto-char (point-max)) + (should (equal (clang-include-fixer--symbol-at-point) "bbb::cc")))) + +(ert-deftest clang-include-fixer--highlight () + (with-temp-buffer + (insert "util::Status foo;\n") + (setq buffer-file-coding-system 'utf-8-unix) + (should (equal nil (clang-include-fixer--highlight + '((Range . ((Offset . 0) (Length . 0))))))) + (let ((overlay (clang-include-fixer--highlight + '((Range . ((Offset . 1) (Length . 12))))))) + (should (equal 2 (overlay-start overlay))) + (should (equal 14 (overlay-end overlay)))))) + +;;; clang-include-fixer-test.el ends here |