summaryrefslogtreecommitdiff
path: root/tests/test-format-region.el.disabled
blob: 25d2e52e8329c353ddb0f752b8efd52e2aa35f3e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
;;; test-format-region.el ---  -*- lexical-binding: t; -*-

;;; Commentary:
;;  Some basic tests for the custom function cj/format-region-or-buffer in
;;  custom-functions.el

;;; Code:

(add-to-list 'load-path (concat user-emacs-directory "modules"))
(require 'custom-functions)


;; ----------------------------------- Tests -----------------------------------

(defvar test-format-rob-text-data
  '(("    spaces in front\nspaces behind   " .
	 "spaces in front\nspaces behind")
	("\t    tabs and spaces in front\ntabs and spaces behind\t   " .
	 "tabs and spaces in front\ntabs and spaces behind")))

(defvar test-format-rob-elisp-data
  '(("(defun existential ()\n(if (eq (+ 3 4) 7)\n(order)\n(chaos)))" .
	  "(defun existential ()\n  (if (eq (+ 3 4) 7)\n   (order)\n (chaos)))")))


(ert-deftest test-format-rob-positive-text-region ()
  "Test cj/format-region-or-buffer on a selected region.
This tests "
  (dolist (data-pair test-format-rob-text-data)
	(let* ((testdata (car data-pair))
		   (expected (cdr data-pair))
		   (actual))
	  (with-temp-buffer
		(insert testdata)
		(goto-char (point-min))
		(set-mark (point))
		(goto-char (point-max))
		(cj/format-region-or-buffer)
		(setq actual (buffer-string))
		(should (string= actual expected))))))

(ert-deftest test-format-rob-positive-text-buffer ()
  "Test cj/format-region-or-buffer on the entire buffer.
This is the same as testing the region without setting a region in the temp
buffer."
  (dolist (data-pair test-format-rob-text-data)
	(let* ((testdata (car data-pair))
		   (expected (cdr data-pair))
		   (actual))
	  (with-temp-buffer
		(insert testdata)
		(cj/format-region-or-buffer)
		(setq actual (buffer-string))
		(should (string= actual expected))))))

(ert-deftest test-format-rob-positive-region-text-multiple-paragraphs ()
  "Test cj/format-region-or-buffer on the entire buffer."
  (dolist (data-pair test-format-rob-text-data)
	(let ((testdata (car data-pair))
		  (expected1 (cdr data-pair))
		  (expected2 (car data-pair))
		  (actual1)
		  (actual2))
	  (with-temp-buffer
		;; insert data twice with newline char in between
		(insert testdata)
		(insert"\n")
		(insert testdata)

		;; select the first set of data
		(goto-char (point-min))
		(set-mark (point))
		(forward-line 2)

		;; run format and return to top
		(cj/format-region-or-buffer)
		(message "buffer is:\n'%s'" (buffer-string))

		;; assert the first set is formatted
		(goto-char (point-min))
		(setq actual1 (buffer-substring (point-min) (line-end-position 2)))
		(should (string= actual1 expected1))

		;; assert the second set is unformatted
		(goto-char (point-min))
		(setq actual2 (buffer-substring (line-beginning-position 3) (point-max)))
		(should (string= actual2 expected2))))))

(ert-deftest test-format-rob-positive-elisp-region ()
  "Test cj/format-region-or-buffer on a selected region.
This tests that emacs-lisp specific formatting is applied."
  (ws-butler-mode nil)
  (dolist (data-pair test-format-rob-elisp-data)
	(let* ((testdata (car data-pair))
		   (expected (cdr data-pair))
		   (actual))
	  (with-temp-buffer
		(emacs-lisp-mode)
		(insert testdata)
		(goto-char (point-min))
		(set-mark (point))
		(goto-char (point-max))
		(message "buffer before:\n'%s'" (buffer-string))
		(cj/format-region-or-buffer)
		(message "buffer after:\n'%s'" (buffer-string))
		(setq actual (buffer-string))
		(should (string= actual expected))))))

(provide 'test-format-region)
;;; test-format-region.el ends here.