| " Tests for expand() |
| |
| source shared.vim |
| |
| let s:sfile = expand('<sfile>') |
| let s:slnum = str2nr(expand('<slnum>')) |
| let s:sflnum = str2nr(expand('<sflnum>')) |
| |
| func s:expand_sfile() |
| return expand('<sfile>') |
| endfunc |
| |
| func s:expand_slnum() |
| return str2nr(expand('<slnum>')) |
| endfunc |
| |
| func s:expand_sflnum() |
| return str2nr(expand('<sflnum>')) |
| endfunc |
| |
| " This test depends on the location in the test file, put it first. |
| func Test_expand_sflnum() |
| call assert_equal(7, s:sflnum) |
| call assert_equal(24, str2nr(expand('<sflnum>'))) |
| |
| " Line-continuation |
| call assert_equal( |
| \ 27, |
| \ str2nr(expand('<sflnum>'))) |
| |
| " Call in script-local function |
| call assert_equal(18, s:expand_sflnum()) |
| |
| " Call in command |
| command Flnum echo expand('<sflnum>') |
| call assert_equal(36, str2nr(trim(execute('Flnum')))) |
| delcommand Flnum |
| endfunc |
| |
| func Test_expand_sfile_and_stack() |
| call assert_match('test_expand_func\.vim$', s:sfile) |
| let expected = 'script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack' |
| call assert_match(expected .. '$', expand('<sfile>')) |
| call assert_match(expected .. '\[4\]' , expand('<stack>')) |
| |
| " Call in script-local function |
| call assert_match('script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack\[7\]\.\.<SNR>\d\+_expand_sfile$', s:expand_sfile()) |
| |
| " Call in command |
| command Sfile echo expand('<sfile>') |
| call assert_match('script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack$', trim(execute('Sfile'))) |
| delcommand Sfile |
| |
| " Use <stack> from sourced script. |
| let lines =<< trim END |
| " comment here |
| let g:stack_value = expand('<stack>') |
| END |
| call writefile(lines, 'Xstack') |
| source Xstack |
| call assert_match('\<Xstack\[2\]$', g:stack_value) |
| call delete('Xstack') |
| endfunc |
| |
| func Test_expand_slnum() |
| call assert_equal(6, s:slnum) |
| call assert_equal(2, str2nr(expand('<slnum>'))) |
| |
| " Line-continuation |
| call assert_equal( |
| \ 5, |
| \ str2nr(expand('<slnum>'))) |
| |
| " Call in script-local function |
| call assert_equal(1, s:expand_slnum()) |
| |
| " Call in command |
| command Slnum echo expand('<slnum>') |
| call assert_equal(14, str2nr(trim(execute('Slnum')))) |
| delcommand Slnum |
| endfunc |
| |
| func Test_expand() |
| new |
| call assert_equal("", expand('%:S')) |
| call assert_equal('3', '<slnum>'->expand()) |
| call assert_equal(['4'], expand('<slnum>', v:false, v:true)) |
| " Don't add any line above this, otherwise <slnum> will change. |
| quit |
| endfunc |
| |
| func s:sid_test() |
| return 'works' |
| endfunc |
| |
| func Test_expand_SID() |
| let sid = expand('<SID>') |
| execute 'let g:sid_result = ' .. sid .. 'sid_test()' |
| call assert_equal('works', g:sid_result) |
| endfunc |
| |
| |
| " Test for 'wildignore' with expand() |
| func Test_expand_wildignore() |
| set wildignore=*.vim |
| call assert_equal('', expand('test_expand_func.vim')) |
| call assert_equal('', expand('test_expand_func.vim', 0)) |
| call assert_equal([], expand('test_expand_func.vim', 0, 1)) |
| call assert_equal('test_expand_func.vim', expand('test_expand_func.vim', 1)) |
| call assert_equal(['test_expand_func.vim'], |
| \ expand('test_expand_func.vim', 1, 1)) |
| call assert_fails("call expand('*', [])", 'E745:') |
| set wildignore& |
| endfunc |
| |
| " vim: shiftwidth=2 sts=2 expandtab |