File: test-electric-mode.el

package info (click to toggle)
lua-mode 20140514-2
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 400 kB
  • ctags: 387
  • sloc: lisp: 4,046; makefile: 37; sh: 26
file content (80 lines) | stat: -rw-r--r-- 2,359 bytes parent folder | download
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
(require 'ert)
(require 's)

(defmacro with-lua-buffer (&rest body)
  `(with-temp-buffer
     (switch-to-buffer (current-buffer))
     (lua-mode)
     (font-lock-fontify-buffer)
     ,@body))


(ert-deftest test-electric-brace ()
  (with-lua-buffer
    (execute-kbd-macro (kbd "return SPC foo SPC { C-j"))
    (execute-kbd-macro (kbd "'baz' C-j"))
    (should (eq (current-indentation) lua-indent-level))

    (execute-kbd-macro (kbd "}"))
    (should (eq (current-indentation) 0))))


(ert-deftest test-electric-paren ()
   (with-lua-buffer
     (execute-kbd-macro (kbd "return SPC foo SPC ( C-j"))
     (execute-kbd-macro (kbd "'baz' C-j"))
     (should (eq (current-indentation) lua-indent-level))

     (execute-kbd-macro (kbd ")"))
     (should (eq (current-indentation) 0))))


(ert-deftest test-electric-end ()
   (with-lua-buffer
    (execute-kbd-macro (kbd "if SPC foo SPC then C-j"))
    (execute-kbd-macro (kbd "'baz' C-j"))
    (should (eq (current-indentation) lua-indent-level))

    (abbrev-mode 1)
    (execute-kbd-macro (kbd "end C-j"))
    (beginning-of-line 0)
    (should (eq (current-indentation) 0))))


(ert-deftest test-electric-else ()
  (with-lua-buffer
   (execute-kbd-macro (kbd "if SPC foo SPC then C-j"))
   (execute-kbd-macro (kbd "'baz' C-j"))
   (should (eq (current-indentation) lua-indent-level))

   (abbrev-mode 1)
   (execute-kbd-macro (kbd "else C-j"))
   (beginning-of-line 0)
   (should (eq (current-indentation) 0))))


(ert-deftest test-electric-elseif ()
  (with-lua-buffer
   (execute-kbd-macro (kbd "if SPC foo SPC then C-j"))
   (execute-kbd-macro (kbd "'baz' C-j"))
   (should (eq (current-indentation) lua-indent-level))

   (abbrev-mode 1)
   (execute-kbd-macro (kbd "elseif C-j"))
   (beginning-of-line 0)
   (should (eq (current-indentation) 0))))


(when (fboundp 'electric-pair-mode)
  (ert-deftest test-electric-pair-skip-self ()
    (let ((old-mode (if electric-pair-mode 1 0)))
      (unwind-protect
          (with-lua-buffer
           (set (make-local-variable 'electric-pair-skip-self) t)
           (set (make-local-variable 'lua-electric-flag) t)
           (electric-pair-mode 1)
           (execute-kbd-macro "(")
           (should (string= (buffer-string) "()"))
           (execute-kbd-macro ")")
           (should (string= (buffer-string) "()")))
        (electric-pair-mode old-mode)))))