Bram Moolenaar | eca626f | 2016-12-01 18:47:38 +0100 | [diff] [blame] | 1 | " Test for :mksession, :mkview and :loadview in utf-8 encoding |
| 2 | |
| 3 | set encoding=utf-8 |
| 4 | scriptencoding utf-8 |
| 5 | |
Bram Moolenaar | b46fecd | 2019-06-15 17:58:09 +0200 | [diff] [blame] | 6 | source check.vim |
| 7 | CheckFeature mksession |
Bram Moolenaar | eca626f | 2016-12-01 18:47:38 +0100 | [diff] [blame] | 8 | |
| 9 | func Test_mksession_utf8() |
| 10 | tabnew |
| 11 | let wrap_save = &wrap |
| 12 | set sessionoptions=buffers splitbelow fileencoding=utf-8 |
| 13 | call setline(1, [ |
| 14 | \ 'start:', |
| 15 | \ 'no multibyte chAracter', |
| 16 | \ ' one leaDing tab', |
| 17 | \ ' four leadinG spaces', |
| 18 | \ 'two consecutive tabs', |
| 19 | \ 'two tabs in one line', |
| 20 | \ 'one … multibyteCharacter', |
| 21 | \ 'a “b” two multiByte characters', |
| 22 | \ '“c”1€ three mulTibyte characters' |
| 23 | \ ]) |
| 24 | let tmpfile = tempname() |
| 25 | exec 'w! ' . tmpfile |
| 26 | /^start: |
| 27 | set wrap |
| 28 | vsplit |
| 29 | norm! j16| |
| 30 | split |
| 31 | norm! j16| |
| 32 | split |
| 33 | norm! j16| |
| 34 | split |
| 35 | norm! j8| |
| 36 | split |
| 37 | norm! j8| |
| 38 | split |
| 39 | norm! j16| |
| 40 | split |
| 41 | norm! j16| |
| 42 | split |
| 43 | norm! j16| |
| 44 | wincmd l |
| 45 | |
| 46 | set nowrap |
| 47 | /^start: |
| 48 | norm! j16|3zl |
| 49 | split |
| 50 | norm! j016|3zl |
| 51 | split |
| 52 | norm! j016|3zl |
| 53 | split |
| 54 | norm! j08|3zl |
| 55 | split |
| 56 | norm! j08|3zl |
| 57 | split |
| 58 | norm! j016|3zl |
| 59 | split |
| 60 | norm! j016|3zl |
| 61 | split |
| 62 | norm! j016|3zl |
| 63 | split |
| 64 | call wincol() |
| 65 | mksession! test_mks.out |
| 66 | let li = filter(readfile('test_mks.out'), 'v:val =~# "\\(^ *normal! 0\\|^ *exe ''normal!\\)"') |
Bram Moolenaar | c79745a | 2019-05-20 22:12:34 +0200 | [diff] [blame] | 67 | let expected =<< trim [DATA] |
| 68 | normal! 016| |
| 69 | normal! 016| |
| 70 | normal! 016| |
| 71 | normal! 08| |
| 72 | normal! 08| |
| 73 | normal! 016| |
| 74 | normal! 016| |
| 75 | normal! 016| |
| 76 | exe 'normal! ' . s:c . '|zs' . 16 . '|' |
| 77 | normal! 016| |
| 78 | exe 'normal! ' . s:c . '|zs' . 16 . '|' |
| 79 | normal! 016| |
| 80 | exe 'normal! ' . s:c . '|zs' . 16 . '|' |
| 81 | normal! 016| |
| 82 | exe 'normal! ' . s:c . '|zs' . 8 . '|' |
| 83 | normal! 08| |
| 84 | exe 'normal! ' . s:c . '|zs' . 8 . '|' |
| 85 | normal! 08| |
| 86 | exe 'normal! ' . s:c . '|zs' . 16 . '|' |
| 87 | normal! 016| |
| 88 | exe 'normal! ' . s:c . '|zs' . 16 . '|' |
| 89 | normal! 016| |
| 90 | exe 'normal! ' . s:c . '|zs' . 16 . '|' |
| 91 | normal! 016| |
| 92 | exe 'normal! ' . s:c . '|zs' . 16 . '|' |
| 93 | normal! 016| |
| 94 | [DATA] |
| 95 | |
Bram Moolenaar | eca626f | 2016-12-01 18:47:38 +0100 | [diff] [blame] | 96 | call assert_equal(expected, li) |
| 97 | tabclose! |
| 98 | |
| 99 | call delete('test_mks.out') |
| 100 | call delete(tmpfile) |
| 101 | let &wrap = wrap_save |
Bram Moolenaar | 2c997d7 | 2017-11-23 22:52:09 +0100 | [diff] [blame] | 102 | set sessionoptions& splitbelow& fileencoding& |
Bram Moolenaar | eca626f | 2016-12-01 18:47:38 +0100 | [diff] [blame] | 103 | endfunc |
| 104 | |
| 105 | " vim: shiftwidth=2 sts=2 expandtab |