1f29c1c6aSBram Moolenaar" Tests for expand() 2f29c1c6aSBram Moolenaar 390944302SBram Moolenaarsource shared.vim 490944302SBram Moolenaar 5f29c1c6aSBram Moolenaarlet s:sfile = expand('<sfile>') 6f29c1c6aSBram Moolenaarlet s:slnum = str2nr(expand('<slnum>')) 7f29c1c6aSBram Moolenaarlet s:sflnum = str2nr(expand('<sflnum>')) 8f29c1c6aSBram Moolenaar 9f29c1c6aSBram Moolenaarfunc s:expand_sfile() 10f29c1c6aSBram Moolenaar return expand('<sfile>') 11f29c1c6aSBram Moolenaarendfunc 12f29c1c6aSBram Moolenaar 13f29c1c6aSBram Moolenaarfunc s:expand_slnum() 14f29c1c6aSBram Moolenaar return str2nr(expand('<slnum>')) 15f29c1c6aSBram Moolenaarendfunc 16f29c1c6aSBram Moolenaar 17f29c1c6aSBram Moolenaarfunc s:expand_sflnum() 18f29c1c6aSBram Moolenaar return str2nr(expand('<sflnum>')) 19f29c1c6aSBram Moolenaarendfunc 20f29c1c6aSBram Moolenaar 21a5d0423fSBram Moolenaar" This test depends on the location in the test file, put it first. 22a5d0423fSBram Moolenaarfunc Test_expand_sflnum() 2390944302SBram Moolenaar call assert_equal(7, s:sflnum) 2490944302SBram Moolenaar call assert_equal(24, str2nr(expand('<sflnum>'))) 25a5d0423fSBram Moolenaar 26a5d0423fSBram Moolenaar " Line-continuation 27a5d0423fSBram Moolenaar call assert_equal( 2890944302SBram Moolenaar \ 27, 29a5d0423fSBram Moolenaar \ str2nr(expand('<sflnum>'))) 30f29c1c6aSBram Moolenaar 31f29c1c6aSBram Moolenaar " Call in script-local function 3290944302SBram Moolenaar call assert_equal(18, s:expand_sflnum()) 33a5d0423fSBram Moolenaar 34a5d0423fSBram Moolenaar " Call in command 35a5d0423fSBram Moolenaar command Flnum echo expand('<sflnum>') 3690944302SBram Moolenaar call assert_equal(36, str2nr(trim(execute('Flnum')))) 37a5d0423fSBram Moolenaar delcommand Flnum 38a5d0423fSBram Moolenaarendfunc 39a5d0423fSBram Moolenaar 40a5d0423fSBram Moolenaarfunc Test_expand_sfile_and_stack() 41a5d0423fSBram Moolenaar call assert_match('test_expand_func\.vim$', s:sfile) 424f25b1abSBram Moolenaar let expected = 'script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack' 434f25b1abSBram Moolenaar call assert_match(expected .. '$', expand('<sfile>')) 444f25b1abSBram Moolenaar call assert_match(expected .. '\[4\]' , expand('<stack>')) 45a5d0423fSBram Moolenaar 46a5d0423fSBram Moolenaar " Call in script-local function 47a5d0423fSBram Moolenaar call assert_match('script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack\[7\]\.\.<SNR>\d\+_expand_sfile$', s:expand_sfile()) 48f29c1c6aSBram Moolenaar 49f29c1c6aSBram Moolenaar " Call in command 50f29c1c6aSBram Moolenaar command Sfile echo expand('<sfile>') 51a5d0423fSBram Moolenaar call assert_match('script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack$', trim(execute('Sfile'))) 52f29c1c6aSBram Moolenaar delcommand Sfile 53a5d0423fSBram Moolenaar 54a5d0423fSBram Moolenaar " Use <stack> from sourced script. 55a5d0423fSBram Moolenaar let lines =<< trim END 564f25b1abSBram Moolenaar " comment here 57a5d0423fSBram Moolenaar let g:stack_value = expand('<stack>') 58a5d0423fSBram Moolenaar END 59a5d0423fSBram Moolenaar call writefile(lines, 'Xstack') 60a5d0423fSBram Moolenaar source Xstack 61*a810db3fSBram Moolenaar call assert_match('\<Xstack\[2\]$', g:stack_value) 62a5d0423fSBram Moolenaar call delete('Xstack') 63f29c1c6aSBram Moolenaarendfunc 64f29c1c6aSBram Moolenaar 65f29c1c6aSBram Moolenaarfunc Test_expand_slnum() 6690944302SBram Moolenaar call assert_equal(6, s:slnum) 67f29c1c6aSBram Moolenaar call assert_equal(2, str2nr(expand('<slnum>'))) 68f29c1c6aSBram Moolenaar 69f29c1c6aSBram Moolenaar " Line-continuation 70f29c1c6aSBram Moolenaar call assert_equal( 71f29c1c6aSBram Moolenaar \ 5, 72f29c1c6aSBram Moolenaar \ str2nr(expand('<slnum>'))) 73f29c1c6aSBram Moolenaar 74f29c1c6aSBram Moolenaar " Call in script-local function 75f29c1c6aSBram Moolenaar call assert_equal(1, s:expand_slnum()) 76f29c1c6aSBram Moolenaar 77f29c1c6aSBram Moolenaar " Call in command 78f29c1c6aSBram Moolenaar command Slnum echo expand('<slnum>') 79f29c1c6aSBram Moolenaar call assert_equal(14, str2nr(trim(execute('Slnum')))) 80f29c1c6aSBram Moolenaar delcommand Slnum 81f29c1c6aSBram Moolenaarendfunc 82f29c1c6aSBram Moolenaar 8317aca707SBram Moolenaarfunc Test_expand() 8417aca707SBram Moolenaar new 8517aca707SBram Moolenaar call assert_equal("", expand('%:S')) 86a4208966SBram Moolenaar call assert_equal('3', '<slnum>'->expand()) 8717aca707SBram Moolenaar call assert_equal(['4'], expand('<slnum>', v:false, v:true)) 8817aca707SBram Moolenaar " Don't add any line above this, otherwise <slnum> will change. 8917aca707SBram Moolenaar quit 9017aca707SBram Moolenaarendfunc 91bd7206e0SBram Moolenaar 9290944302SBram Moolenaarfunc s:sid_test() 9390944302SBram Moolenaar return 'works' 9490944302SBram Moolenaarendfunc 9590944302SBram Moolenaar 9690944302SBram Moolenaarfunc Test_expand_SID() 9790944302SBram Moolenaar let sid = expand('<SID>') 9890944302SBram Moolenaar execute 'let g:sid_result = ' .. sid .. 'sid_test()' 9990944302SBram Moolenaar call assert_equal('works', g:sid_result) 10090944302SBram Moolenaarendfunc 10190944302SBram Moolenaar 10290944302SBram Moolenaar 103bd7206e0SBram Moolenaar" Test for 'wildignore' with expand() 104bd7206e0SBram Moolenaarfunc Test_expand_wildignore() 105bd7206e0SBram Moolenaar set wildignore=*.vim 106bd7206e0SBram Moolenaar call assert_equal('', expand('test_expand_func.vim')) 107bd7206e0SBram Moolenaar call assert_equal('', expand('test_expand_func.vim', 0)) 108bd7206e0SBram Moolenaar call assert_equal([], expand('test_expand_func.vim', 0, 1)) 109bd7206e0SBram Moolenaar call assert_equal('test_expand_func.vim', expand('test_expand_func.vim', 1)) 110bd7206e0SBram Moolenaar call assert_equal(['test_expand_func.vim'], 111bd7206e0SBram Moolenaar \ expand('test_expand_func.vim', 1, 1)) 1120e05de46SBram Moolenaar call assert_fails("call expand('*', [])", 'E745:') 113bd7206e0SBram Moolenaar set wildignore& 114bd7206e0SBram Moolenaarendfunc 115bd7206e0SBram Moolenaar 116bd7206e0SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 117