blob: 6fedf1fe9ceaf3a0b19e150bf3e9f8fe0e2e573a [file] [log] [blame]
Bram Moolenaarcfe435d2020-04-25 20:02:55 +02001" Test commands that are not compiled in a :def function
2
Bram Moolenaar6378c4f2020-04-26 13:50:41 +02003source check.vim
Bram Moolenaarcfe435d2020-04-25 20:02:55 +02004source vim9.vim
5
6def Test_edit_wildcards()
7 let filename = 'Xtest'
8 edit `=filename`
9 assert_equal('Xtest', bufname())
10
11 let filenr = 123
12 edit Xtest`=filenr`
13 assert_equal('Xtest123', bufname())
14
15 filenr = 77
16 edit `=filename``=filenr`
17 assert_equal('Xtest77', bufname())
18
19 edit X`=filename`xx`=filenr`yy
20 assert_equal('XXtestxx77yy', bufname())
21enddef
22
Bram Moolenaar6378c4f2020-04-26 13:50:41 +020023def Test_hardcopy_wildcards()
24 CheckUnix
25 CheckFeature postscript
26
27 let outfile = 'print'
28 hardcopy > X`=outfile`.ps
29 assert_true(filereadable('Xprint.ps'))
30
31 delete('Xprint.ps')
32enddef
33
34def Test_syn_include_wildcards()
35 writefile(['syn keyword Found found'], 'Xthemine.vim')
36 let save_rtp = &rtp
37 &rtp = '.'
38
39 let fname = 'mine'
40 syn include @Group Xthe`=fname`.vim
41 assert_match('Found.* contained found', execute('syn list Found'))
42
43 &rtp = save_rtp
44 delete('Xthemine.vim')
45enddef
46
Bram Moolenaar1cc2a942020-05-10 19:10:31 +020047def Test_assign_list()
48 let l: list<string> = []
49 l[0] = 'value'
50 assert_equal('value', l[0])
51
52 l[1] = 'asdf'
53 assert_equal('value', l[0])
54 assert_equal('asdf', l[1])
55 assert_equal('asdf', l[-1])
56 assert_equal('value', l[-2])
Bram Moolenaarf163bd52020-05-10 21:47:43 +020057
58 let nrl: list<number> = []
59 for i in range(5)
60 nrl[i] = i
61 endfor
62 assert_equal([0, 1, 2, 3, 4], nrl)
Bram Moolenaar1cc2a942020-05-10 19:10:31 +020063enddef
64
65def Test_assign_dict()
66 let d: dict<string> = {}
67 d['key'] = 'value'
68 assert_equal('value', d['key'])
69
70 d[123] = 'qwerty'
71 assert_equal('qwerty', d[123])
72 assert_equal('qwerty', d['123'])
Bram Moolenaarf163bd52020-05-10 21:47:43 +020073
74 let nrd: dict<number> = {}
75 for i in range(3)
76 nrd[i] = i
77 endfor
78 assert_equal({'0': 0, '1': 1, '2': 2}, nrd)
Bram Moolenaar1cc2a942020-05-10 19:10:31 +020079enddef
80
Bram Moolenaar7e8967f2020-06-27 21:56:17 +020081def Test_echo_linebreak()
82 let lines =<< trim END
83 vim9script
84 redir @a
85 echo 'one'
86 .. 'two'
87 redir END
88 assert_equal("\nonetwo", @a)
89 END
90 CheckScriptSuccess(lines)
91
92 lines =<< trim END
93 vim9script
94 redir @a
95 echo 11 +
96 77
97 - 22
98 redir END
99 assert_equal("\n66", @a)
100 END
101 CheckScriptSuccess(lines)
102enddef
103
Bram Moolenaarfaf86262020-06-27 23:07:36 +0200104def Test_if_linebreak()
105 let lines =<< trim END
106 vim9script
107 if 1 &&
108 2
109 || 3
110 g:res = 42
111 endif
112 assert_equal(42, g:res)
113 END
114 CheckScriptSuccess(lines)
115 unlet g:res
116
117 lines =<< trim END
118 vim9script
119 if 1 &&
120 0
121 g:res = 0
122 elseif 0 ||
123 0
124 || 1
125 g:res = 12
126 endif
127 assert_equal(12, g:res)
128 END
129 CheckScriptSuccess(lines)
130 unlet g:res
131enddef
132
133def Test_while_linebreak()
Bram Moolenaarfaf86262020-06-27 23:07:36 +0200134 let lines =<< trim END
135 vim9script
136 let nr = 0
Bram Moolenaard5053d02020-06-28 15:51:16 +0200137 while nr <
138 10 + 3
139 nr = nr
140 + 4
141 endwhile
142 assert_equal(16, nr)
143 END
144 CheckScriptSuccess(lines)
145
146 lines =<< trim END
147 vim9script
148 let nr = 0
149 while nr
150 <
151 10
152 +
153 3
154 nr = nr
155 +
156 4
Bram Moolenaarfaf86262020-06-27 23:07:36 +0200157 endwhile
158 assert_equal(16, nr)
159 END
160 CheckScriptSuccess(lines)
161enddef
Bram Moolenaarcfe435d2020-04-25 20:02:55 +0200162
Bram Moolenaarb7a78f72020-06-28 18:43:40 +0200163def Test_for_linebreak()
164 let lines =<< trim END
165 vim9script
166 let nr = 0
167 for x
168 in
169 [1, 2, 3, 4]
170 nr = nr + x
171 endfor
172 assert_equal(10, nr)
173 END
174 CheckScriptSuccess(lines)
175
176 lines =<< trim END
177 vim9script
178 let nr = 0
179 for x
180 in
181 [1, 2,
182 3, 4
183 ]
184 nr = nr
185 +
186 x
187 endfor
188 assert_equal(10, nr)
189 END
190 CheckScriptSuccess(lines)
191enddef
192
193
Bram Moolenaarcfe435d2020-04-25 20:02:55 +0200194" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker