66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			EmacsLisp
		
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			EmacsLisp
		
	
	
	
| ;;; 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
 |