| " Test for reading and writing .viminfo |
| |
| function Test_read_and_write() |
| let lines = [ |
| \ '# comment line', |
| \ '*encoding=utf-8', |
| \ '~MSle0~/asdf', |
| \ '|copied as-is', |
| \ '|and one more', |
| \ ] |
| call writefile(lines, 'Xviminfo') |
| rviminfo Xviminfo |
| call assert_equal('asdf', @/) |
| |
| wviminfo Xviminfo |
| let lines = readfile('Xviminfo') |
| let done = 0 |
| for line in lines |
| if line[0] == '|' |
| if done == 0 |
| call assert_equal('|copied as-is', line) |
| elseif done == 1 |
| call assert_equal('|and one more', line) |
| endif |
| let done += 1 |
| endif |
| endfor |
| call assert_equal(2, done) |
| |
| call delete('Xviminfo') |
| endfunc |
| |
| func Test_global_vars() |
| let test_dict = {'foo': 1, 'bar': 0, 'longvarible': 1000} |
| let g:MY_GLOBAL_DICT = test_dict |
| " store a really long list, so line wrapping will occur in viminfo file |
| let test_list = range(1,100) |
| let g:MY_GLOBAL_LIST = test_list |
| set viminfo='100,<50,s10,h,!,nviminfo |
| wv! Xviminfo |
| unlet g:MY_GLOBAL_DICT |
| unlet g:MY_GLOBAL_LIST |
| |
| rv! Xviminfo |
| call assert_equal(test_dict, g:MY_GLOBAL_DICT) |
| call assert_equal(test_list, g:MY_GLOBAL_LIST) |
| |
| call delete('Xviminfo') |
| set viminfo-=! |
| endfunc |