1" Test commands that are not compiled in a :def function 2 3source check.vim 4source 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 23def 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 47def 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]) 57 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) 63enddef 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']) 73 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) 79enddef 80 81def 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 104def 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() 134 let lines =<< trim END 135 vim9script 136 let nr = 0 137 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 157 endwhile 158 assert_equal(16, nr) 159 END 160 CheckScriptSuccess(lines) 161enddef 162 163def 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 194" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker 195