annotate src/testdir/test_lua.vim @ 14230:2e95ea9afa1e v8.1.0132

patch 8.1.0132: lua tests are old style commit https://github.com/vim/vim/commit/4ff4814b383bc85fbf5d8f62c8022f4379d7a490 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jun 30 21:50:25 2018 +0200 patch 8.1.0132: lua tests are old style Problem: Lua tests are old style. Solution: Convert to new style tests. Improve coverage. (Dominique Pelle, closes #3091)
author Christian Brabandt <cb@256bit.org>
date Sat, 30 Jun 2018 22:00:07 +0200
parents 6c3d42d18366
children e3bc8cdc94dd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10757
6c3d42d18366 patch 8.0.0268: may get ml_get error when :luado deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Tests for Lua.
6c3d42d18366 patch 8.0.0268: may get ml_get error when :luado deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
6c3d42d18366 patch 8.0.0268: may get ml_get error when :luado deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 if !has('lua')
6c3d42d18366 patch 8.0.0268: may get ml_get error when :luado deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4 finish
6c3d42d18366 patch 8.0.0268: may get ml_get error when :luado deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5 endif
6c3d42d18366 patch 8.0.0268: may get ml_get error when :luado deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6
14230
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
7 " Check that switching to another buffer does not trigger ml_get error.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
8 func Test_command_new_no_ml_get_error()
10757
6c3d42d18366 patch 8.0.0268: may get ml_get error when :luado deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 new
6c3d42d18366 patch 8.0.0268: may get ml_get error when :luado deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 let wincount = winnr('$')
6c3d42d18366 patch 8.0.0268: may get ml_get error when :luado deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 call setline(1, ['one', 'two', 'three'])
6c3d42d18366 patch 8.0.0268: may get ml_get error when :luado deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 luado vim.command("new")
6c3d42d18366 patch 8.0.0268: may get ml_get error when :luado deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 call assert_equal(wincount + 1, winnr('$'))
14230
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
14 %bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
15 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
16
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
17 " Test vim.command()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
18 func Test_command()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
19 new
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
20 call setline(1, ['one', 'two', 'three'])
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
21 luado vim.command("1,2d_")
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
22 call assert_equal(['three'], getline(1, '$'))
10757
6c3d42d18366 patch 8.0.0268: may get ml_get error when :luado deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23 bwipe!
14230
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
24 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
25
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
26 " Test vim.eval()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
27 func Test_eval()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
28 " lua.eval with a number
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
29 lua v = vim.eval('123')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
30 call assert_equal('number', luaeval('vim.type(v)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
31 call assert_equal(123.0, luaeval('v'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
32
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
33 " lua.eval with a string
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
34 lua v = vim.eval('"abc"')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
35 call assert_equal('string', luaeval('vim.type(v)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
36 call assert_equal('abc', luaeval('v'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
37
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
38 " lua.eval with a list
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
39 lua v = vim.eval("['a']")
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
40 call assert_equal('list', luaeval('vim.type(v)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
41 call assert_equal(['a'], luaeval('v'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
42
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
43 " lua.eval with a dict
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
44 lua v = vim.eval("{'a':'b'}")
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
45 call assert_equal('dict', luaeval('vim.type(v)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
46 call assert_equal({'a':'b'}, luaeval('v'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
47
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
48 call assert_fails('lua v = vim.eval(nil)',
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
49 \ "[string \"vim chunk\"]:1: bad argument #1 to 'eval' (string expected, got nil)")
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
50 call assert_fails('lua v = vim.eval(true)',
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
51 \ "[string \"vim chunk\"]:1: bad argument #1 to 'eval' (string expected, got boolean)")
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
52 call assert_fails('lua v = vim.eval({})',
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
53 \ "[string \"vim chunk\"]:1: bad argument #1 to 'eval' (string expected, got table)")
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
54 call assert_fails('lua v = vim.eval(print)',
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
55 \ "[string \"vim chunk\"]:1: bad argument #1 to 'eval' (string expected, got function)")
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
56 call assert_fails('lua v = vim.eval(vim.buffer())',
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
57 \ "[string \"vim chunk\"]:1: bad argument #1 to 'eval' (string expected, got userdata)")
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
58
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
59 lua v = nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
60 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
61
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
62 " Test vim.window()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
63 func Test_window()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
64 e Xfoo2
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
65 new Xfoo1
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
66
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
67 " Window 1 (top window) contains Xfoo1
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
68 " Window 2 (bottom window) contains Xfoo2
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
69 call assert_equal('Xfoo1', luaeval('vim.window(1):buffer().name'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
70 call assert_equal('Xfoo2', luaeval('vim.window(2):buffer().name'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
71
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
72 " Window 3 does not exist so vim.window(3) should return nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
73 call assert_equal('nil', luaeval('tostring(vim.window(3))'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
74
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
75 %bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
76 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
77
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
78 " Test vim.window().height
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
79 func Test_window_height()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
80 new
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
81 lua vim.window().height = 2
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
82 call assert_equal(2, winheight(0))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
83 lua vim.window().height = vim.window().height + 1
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
84 call assert_equal(3, winheight(0))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
85 bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
86 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
87
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
88 " Test vim.window().width
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
89 func Test_window_width()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
90 vert new
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
91 lua vim.window().width = 2
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
92 call assert_equal(2, winwidth(0))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
93 lua vim.window().width = vim.window().width + 1
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
94 call assert_equal(3, winwidth(0))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
95 bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
96 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
97
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
98 " Test vim.window().line and vim.window.col
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
99 func Test_window_line_col()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
100 new
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
101 call setline(1, ['line1', 'line2', 'line3'])
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
102 lua vim.window().line = 2
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
103 lua vim.window().col = 4
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
104 call assert_equal([0, 2, 4, 0], getpos('.'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
105 lua vim.window().line = vim.window().line + 1
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
106 lua vim.window().col = vim.window().col - 1
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
107 call assert_equal([0, 3, 3, 0], getpos('.'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
108
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
109 call assert_fails('lua vim.window().line = 10',
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
110 \ '[string "vim chunk"]:1: line out of range')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
111 bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
112 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
113
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
114 " Test setting the current window
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
115 func Test_window_set_current()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
116 new Xfoo1
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
117 lua w1 = vim.window()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
118 new Xfoo2
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
119 lua w2 = vim.window()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
120
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
121 call assert_equal('Xfoo2', bufname('%'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
122 lua w1()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
123 call assert_equal('Xfoo1', bufname('%'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
124 lua w2()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
125 call assert_equal('Xfoo2', bufname('%'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
126
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
127 lua w1, w2 = nil, nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
128 %bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
129 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
130
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
131 " Test vim.window().buffer
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
132 func Test_window_buffer()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
133 new Xfoo1
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
134 lua w1 = vim.window()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
135 lua b1 = w1.buffer()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
136 new Xfoo2
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
137 lua w2 = vim.window()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
138 lua b2 = w2.buffer()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
139
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
140 lua b1()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
141 call assert_equal('Xfoo1', bufname('%'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
142 lua b2()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
143 call assert_equal('Xfoo2', bufname('%'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
144
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
145 lua b1, b2 = nil, nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
146 %bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
147 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
148
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
149 " Test vim.window():previous() and vim.window():next()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
150 func Test_window_next_previous()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
151 new Xfoo1
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
152 new Xfoo2
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
153 new Xfoo3
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
154 wincmd j
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
155
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
156 call assert_equal('Xfoo2', luaeval('vim.window().buffer().name'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
157 call assert_equal('Xfoo1', luaeval('vim.window():next():buffer().name'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
158 call assert_equal('Xfoo3', luaeval('vim.window():previous():buffer().name'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
159
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
160 %bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
161 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
162
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
163 " Test vim.window():isvalid()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
164 func Test_window_isvalid()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
165 new Xfoo
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
166 lua w = vim.window()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
167 call assert_true(luaeval('w:isvalid()'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
168
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
169 " FIXME: how to test the case when isvalid() returns v:false?
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
170 " isvalid() gives errors when the window is deleted. Is it a bug?
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
171
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
172 lua w = nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
173 bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
174 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
175
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
176 " Test vim.buffer() with and without argument
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
177 func Test_buffer()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
178 new Xfoo1
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
179 let bn1 = bufnr('%')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
180 new Xfoo2
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
181 let bn2 = bufnr('%')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
182
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
183 " Test vim.buffer() without argument.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
184 call assert_equal('Xfoo2', luaeval("vim.buffer().name"))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
185
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
186 " Test vim.buffer() with string argument.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
187 call assert_equal('Xfoo1', luaeval("vim.buffer('Xfoo1').name"))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
188 call assert_equal('Xfoo2', luaeval("vim.buffer('Xfoo2').name"))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
189
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
190 " Test vim.buffer() with integer argument.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
191 call assert_equal('Xfoo1', luaeval("vim.buffer(" . bn1 . ").name"))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
192 call assert_equal('Xfoo2', luaeval("vim.buffer(" . bn2 . ").name"))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
193
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
194 lua bn1, bn2 = nil, nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
195 %bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
196 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
197
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
198 " Test vim.buffer().name and vim.buffer().fname
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
199 func Test_buffer_name()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
200 new
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
201 " FIXME: for an unnamed buffer, I would expect
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
202 " vim.buffer().name to give an empty string, but
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
203 " it returns 0. Is it a bug?
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
204 " so this assert_equal is commented out.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
205 " call assert_equal('', luaeval('vim.buffer().name'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
206 bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
207
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
208 new Xfoo
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
209 call assert_equal('Xfoo', luaeval('vim.buffer().name'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
210 call assert_equal(expand('%:p'), luaeval('vim.buffer().fname'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
211 bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
212 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
213
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
214 " Test vim.buffer().number
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
215 func Test_buffer_number()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
216 " All numbers in Lua are floating points number (no integers).
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
217 call assert_equal(bufnr('%'), float2nr(luaeval('vim.buffer().number')))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
218 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
219
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
220 " Test inserting lines in buffer.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
221 func Test_buffer_insert()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
222 new
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
223 lua vim.buffer()[1] = '3'
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
224 lua vim.buffer():insert('1', 0)
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
225 lua vim.buffer():insert('2', 1)
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
226 lua vim.buffer():insert('4', 10)
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
227
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
228 call assert_equal(['1', '2', '3', '4'], getline(1, '$'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
229 bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
230 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
231
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
232 " Test deleting line in buffer
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
233 func Test_buffer_delete()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
234 new
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
235 call setline(1, ['1', '2', '3'])
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
236 lua vim.buffer()[2] = nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
237 call assert_equal(['1', '3'], getline(1, '$'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
238
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
239 call assert_fails('lua vim.buffer()[3] = nil',
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
240 \ '[string "vim chunk"]:1: invalid line number')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
241 bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
242 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
243
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
244 " Test #vim.buffer() i.e. number of lines in buffer
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
245 func Test_buffer_number_lines()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
246 new
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
247 call setline(1, ['a', 'b', 'c'])
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
248 call assert_equal(3.0, luaeval('#vim.buffer()'))
10757
6c3d42d18366 patch 8.0.0268: may get ml_get error when :luado deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
249 bwipe!
6c3d42d18366 patch 8.0.0268: may get ml_get error when :luado deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
250 endfunc
14230
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
251
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
252 " Test vim.buffer():next() and vim.buffer():previous()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
253 " Note that these functions get the next or previous buffers
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
254 " but do not switch buffer.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
255 func Test_buffer_next_previous()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
256 new Xfoo1
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
257 new Xfoo2
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
258 new Xfoo3
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
259 b Xfoo2
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
260
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
261 lua bn = vim.buffer():next()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
262 lua bp = vim.buffer():previous()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
263
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
264 call assert_equal('Xfoo2', luaeval('vim.buffer().name'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
265 call assert_equal('Xfoo1', luaeval('bp.name'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
266 call assert_equal('Xfoo3', luaeval('bn.name'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
267
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
268 call assert_equal('Xfoo2', bufname('%'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
269
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
270 lua bn()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
271 call assert_equal('Xfoo3', luaeval('vim.buffer().name'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
272 call assert_equal('Xfoo3', bufname('%'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
273
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
274 lua bp()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
275 call assert_equal('Xfoo1', luaeval('vim.buffer().name'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
276 call assert_equal('Xfoo1', bufname('%'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
277
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
278 lua bn, bp = nil, nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
279 %bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
280 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
281
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
282 " Test vim.buffer():isvalid()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
283 func Test_buffer_isvalid()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
284 new Xfoo
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
285 lua b = vim.buffer()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
286 call assert_true(luaeval('b:isvalid()'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
287
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
288 " FIXME: how to test the case when isvalid() returns v:false?
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
289 " isvalid() gives errors when the buffer is wiped. Is it a bug?
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
290
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
291 lua b = nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
292 bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
293 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
294
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
295 func Test_list()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
296 call assert_equal([], luaeval('vim.list()'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
297
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
298 " Same example as in :help lua-vim.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
299 " FIXME: test is disabled because it does not work.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
300 " See https://github.com/vim/vim/issues/3086
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
301 " lua t = {math.pi, false, say = 'hi'}
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
302 " call assert_equal([3.141593, 0], luaeval('vim.list(t)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
303
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
304 let l = []
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
305 lua l = vim.eval('l')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
306 lua l:add(123)
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
307 lua l:add('abc')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
308 lua l:add(true)
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
309 lua l:add(false)
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
310 lua l:add(vim.eval("[1, 2, 3]"))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
311 lua l:add(vim.eval("{'a':1, 'b':2, 'c':3}"))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
312 call assert_equal([123.0, 'abc', v:true, v:false, [1, 2, 3], {'a': 1, 'b': 2, 'c': 3}], l)
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
313 call assert_equal(6.0, luaeval('#l'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
314 call assert_match('^list: 0x\x\+$', luaeval('tostring(l)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
315
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
316 lua l[0] = 124
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
317 lua l[4] = nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
318 lua l:insert('first')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
319 lua l:insert('xx', 3)
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
320 call assert_equal(['first', 124.0, 'abc', 'xx', v:true, v:false, {'a': 1, 'b': 2, 'c': 3}], l)
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
321
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
322 lua l = nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
323 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
324
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
325 " Test l() i.e. iterator on list
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
326 func Test_list_iter()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
327 lua l = vim.list():add('foo'):add('bar')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
328 lua str = ''
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
329 lua for v in l() do str = str .. v end
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
330 call assert_equal('foobar', luaeval('str'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
331
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
332 lua str, v, l = nil, nil, nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
333 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
334
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
335 func Test_recursive_list()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
336 lua l = vim.list():add(1):add(2)
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
337 lua l = l:add(l)
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
338
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
339 call assert_equal(1.0, luaeval('l[0]'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
340 call assert_equal(2.0, luaeval('l[1]'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
341
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
342 call assert_equal(1.0, luaeval('l[2][0]'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
343 call assert_equal(2.0, luaeval('l[2][1]'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
344
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
345 call assert_equal(1.0, luaeval('l[2][2][0]'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
346 call assert_equal(2.0, luaeval('l[2][2][1]'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
347
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
348 call assert_equal('[1.0, 2.0, [...]]', string(luaeval('l')))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
349
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
350 call assert_match('^list: 0x\x\+$', luaeval('tostring(l)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
351 call assert_equal(luaeval('tostring(l)'), luaeval('tostring(l[2])'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
352
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
353 call assert_equal(luaeval('l'), luaeval('l[2]'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
354 call assert_equal(luaeval('l'), luaeval('l[2][2]'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
355
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
356 lua l = nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
357 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
358
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
359 func Test_dict()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
360 call assert_equal({}, luaeval('vim.dict()'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
361
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
362 " Same example as in :help lua-vim.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
363 " FIXME: test is disabled because it does not work.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
364 " See https://github.com/vim/vim/issues/3086
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
365 " lua t = {math.pi, false, say = 'hi'}
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
366 " call assert_equal({'say' : 'hi'}, luaeval('vim.dict(t)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
367
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
368 let d = {}
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
369 lua d = vim.eval('d')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
370 lua d[0] = 123
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
371 lua d[1] = "abc"
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
372 lua d[2] = true
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
373 lua d[3] = false
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
374 lua d[4] = vim.eval("[1, 2, 3]")
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
375 lua d[5] = vim.eval("{'a':1, 'b':2, 'c':3}")
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
376 call assert_equal({'0':123.0, '1':'abc', '2':v:true, '3':v:false, '4': [1, 2, 3], '5': {'a':1, 'b':2, 'c':3}}, d)
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
377 call assert_equal(6.0, luaeval('#d'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
378 call assert_match('^dict: 0x\x\+$', luaeval('tostring(d)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
379
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
380 call assert_equal('abc', luaeval('d[1]'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
381
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
382 lua d[0] = 124
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
383 lua d[4] = nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
384 call assert_equal({'0':124.0, '1':'abc', '2':v:true, '3':v:false, '5': {'a':1, 'b':2, 'c':3}}, d)
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
385
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
386 lua d = nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
387 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
388
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
389 " Test d() i.e. iterator on dictionary
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
390 func Test_dict_iter()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
391 let d = {'a': 1, 'b':2}
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
392 lua d = vim.eval('d')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
393 lua str = ''
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
394 lua for k,v in d() do str = str .. k ..':' .. v .. ',' end
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
395 call assert_equal('a:1,b:2,', luaeval('str'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
396
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
397 lua str, k, v, d = nil, nil, nil, nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
398 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
399
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
400 " Test vim.type()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
401 func Test_type()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
402 " The following values are identical to Lua's type function.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
403 call assert_equal('string', luaeval('vim.type("foo")'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
404 call assert_equal('number', luaeval('vim.type(1)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
405 call assert_equal('number', luaeval('vim.type(1.2)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
406 call assert_equal('function', luaeval('vim.type(print)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
407 call assert_equal('table', luaeval('vim.type({})'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
408 call assert_equal('boolean', luaeval('vim.type(true)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
409 call assert_equal('boolean', luaeval('vim.type(false)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
410 call assert_equal('nil', luaeval('vim.type(nil)'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
411
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
412 " The following values are specific to Vim.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
413 call assert_equal('window', luaeval('vim.type(vim.window())'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
414 call assert_equal('buffer', luaeval('vim.type(vim.buffer())'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
415 call assert_equal('list', luaeval('vim.type(vim.list())'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
416 call assert_equal('dict', luaeval('vim.type(vim.dict())'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
417 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
418
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
419 " Test vim.open()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
420 func Test_open()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
421 call assert_notmatch('XOpen', execute('ls'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
422
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
423 " Open a buffer XOpen1, but do not jump to it.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
424 lua b = vim.open('XOpen1')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
425 call assert_equal('XOpen1', luaeval('b.name'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
426 call assert_equal('', bufname('%'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
427
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
428 call assert_match('XOpen1', execute('ls'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
429 call assert_notequal('XOpen2', bufname('%'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
430
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
431 " Open a buffer XOpen2 and jump to it.
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
432 lua b = vim.open('XOpen2')()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
433 call assert_equal('XOpen2', luaeval('b.name'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
434 call assert_equal('XOpen2', bufname('%'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
435
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
436 lua b = nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
437 %bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
438 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
439
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
440 " Test vim.line()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
441 func Test_line()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
442 new
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
443 call setline(1, ['first line', 'second line'])
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
444 1
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
445 call assert_equal('first line', luaeval('vim.line()'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
446 2
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
447 call assert_equal('second line', luaeval('vim.line()'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
448 bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
449 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
450
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
451 " Test vim.beep()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
452 func Test_beep()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
453 call assert_beeps('lua vim.beep()')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
454 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
455
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
456 " Test errors in luaeval()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
457 func Test_luaeval_error()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
458 " Compile error
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
459 call assert_fails("call luaeval('-nil')",
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
460 \ '[string "luaeval"]:1: attempt to perform arithmetic on a nil value')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
461 call assert_fails("call luaeval(']')",
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
462 \ "[string \"luaeval\"]:1: unexpected symbol near ']'")
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
463 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
464
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
465 " Test :luafile foo.lua
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
466 func Test_luafile()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
467 call delete('Xlua_file')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
468 call writefile(["str = 'hello'", "num = 123.0" ], 'Xlua_file')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
469 call setfperm('Xlua_file', 'r-xr-xr-x')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
470
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
471 luafile Xlua_file
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
472 call assert_equal('hello', luaeval('str'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
473 call assert_equal(123.0, luaeval('num'))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
474
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
475 lua str, num = nil, nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
476 call delete('Xlua_file')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
477 endfunc
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
478
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
479 " Test :luafile %
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
480 func Test_luafile_percent()
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
481 new Xlua_file
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
482 append
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
483 str, num = 'foo', 321.0
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
484 print(string.format('str=%s, num=%d', str, num))
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
485 .
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
486 w!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
487 luafile %
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
488 let msg = split(execute('message'), "\n")[-1]
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
489 call assert_equal('str=foo, num=321', msg)
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
490
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
491 lua str, num = nil, nil
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
492 call delete('Xlua_file')
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
493 bwipe!
2e95ea9afa1e patch 8.1.0132: lua tests are old style
Christian Brabandt <cb@256bit.org>
parents: 10757
diff changeset
494 endfunc