Bram Moolenaar | b20e334 | 2016-01-18 23:29:01 +0100 | [diff] [blame] | 1 | " Test for reading and writing .viminfo |
| 2 | |
| 3 | function Test_read_and_write() |
| 4 | let lines = [ |
| 5 | \ '# comment line', |
| 6 | \ '*encoding=utf-8', |
| 7 | \ '~MSle0~/asdf', |
| 8 | \ '|copied as-is', |
| 9 | \ '|and one more', |
| 10 | \ ] |
| 11 | call writefile(lines, 'Xviminfo') |
| 12 | rviminfo Xviminfo |
| 13 | call assert_equal('asdf', @/) |
| 14 | |
| 15 | wviminfo Xviminfo |
| 16 | let lines = readfile('Xviminfo') |
| 17 | let done = 0 |
| 18 | for line in lines |
| 19 | if line[0] == '|' |
| 20 | if done == 0 |
| 21 | call assert_equal('|copied as-is', line) |
| 22 | elseif done == 1 |
| 23 | call assert_equal('|and one more', line) |
| 24 | endif |
| 25 | let done += 1 |
| 26 | endif |
| 27 | endfor |
| 28 | call assert_equal(2, done) |
| 29 | |
| 30 | call delete('Xviminfo') |
| 31 | endfunc |
| 32 | |
| 33 | func Test_global_vars() |
| 34 | let test_dict = {'foo': 1, 'bar': 0, 'longvarible': 1000} |
| 35 | let g:MY_GLOBAL_DICT = test_dict |
| 36 | " store a really long list, so line wrapping will occur in viminfo file |
| 37 | let test_list = range(1,100) |
| 38 | let g:MY_GLOBAL_LIST = test_list |
Bram Moolenaar | e9c0727 | 2016-03-30 20:50:46 +0200 | [diff] [blame] | 39 | set viminfo='100,<50,s10,h,!,nviminfo |
Bram Moolenaar | b20e334 | 2016-01-18 23:29:01 +0100 | [diff] [blame] | 40 | wv! Xviminfo |
| 41 | unlet g:MY_GLOBAL_DICT |
| 42 | unlet g:MY_GLOBAL_LIST |
| 43 | |
| 44 | rv! Xviminfo |
| 45 | call assert_equal(test_dict, g:MY_GLOBAL_DICT) |
| 46 | call assert_equal(test_list, g:MY_GLOBAL_LIST) |
| 47 | |
| 48 | call delete('Xviminfo') |
| 49 | set viminfo-=! |
| 50 | endfunc |