1" Tests for the :source command. 2 3func Test_source_autocmd() 4 call writefile([ 5 \ 'let did_source = 1', 6 \ ], 'Xsourced') 7 au SourcePre *source* let did_source_pre = 1 8 au SourcePost *source* let did_source_post = 1 9 10 source Xsourced 11 12 call assert_equal(g:did_source, 1) 13 call assert_equal(g:did_source_pre, 1) 14 call assert_equal(g:did_source_post, 1) 15 16 call delete('Xsourced') 17 au! SourcePre 18 au! SourcePost 19 unlet g:did_source 20 unlet g:did_source_pre 21 unlet g:did_source_post 22endfunc 23 24func Test_source_cmd() 25 au SourceCmd *source* let did_source = expand('<afile>') 26 au SourcePre *source* let did_source_pre = 2 27 au SourcePost *source* let did_source_post = 2 28 29 source Xsourced 30 31 call assert_equal(g:did_source, 'Xsourced') 32 call assert_false(exists('g:did_source_pre')) 33 call assert_equal(g:did_source_post, 2) 34 35 au! SourceCmd 36 au! SourcePre 37 au! SourcePost 38endfunc 39 40func Test_source_sandbox() 41 new 42 call writefile(["Ohello\<Esc>"], 'Xsourcehello') 43 source! Xsourcehello | echo 44 call assert_equal('hello', getline(1)) 45 call assert_fails('sandbox source! Xsourcehello', 'E48:') 46 bwipe! 47endfunc 48