diff options
Diffstat (limited to 'mnv/src/testdir/test_mksession_utf8.mnv')
| -rw-r--r-- | mnv/src/testdir/test_mksession_utf8.mnv | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/mnv/src/testdir/test_mksession_utf8.mnv b/mnv/src/testdir/test_mksession_utf8.mnv new file mode 100644 index 0000000000..639ef829b4 --- /dev/null +++ b/mnv/src/testdir/test_mksession_utf8.mnv @@ -0,0 +1,142 @@ +" Test for :mksession, :mkview and :loadview in utf-8 encoding + +set encoding=utf-8 +scriptencoding utf-8 + +CheckFeature mksession + +func Test_mksession_utf8() + tabnew + let wrap_save = &wrap + set sessionoptions=buffers splitbelow fileencoding=utf-8 + call setline(1, [ + \ 'start:', + \ 'no multibyte chAracter', + \ ' one leaDing tab', + \ ' four leadinG spaces', + \ 'two consecutive tabs', + \ 'two tabs in one line', + \ 'one … multibyteCharacter', + \ 'a “b” two multiByte characters', + \ '“c”1€ three mulTibyte characters' + \ ]) + let tmpfile = tempname() + exec 'w! ' . tmpfile + /^start: + set wrap + vsplit + norm! j16| + split + norm! j16| + split + norm! j16| + split + norm! j8| + split + norm! j8| + split + norm! j16| + split + norm! j16| + split + norm! j16| + wincmd l + + set nowrap + /^start: + norm! j16|3zl + split + norm! j016|3zl + split + norm! j016|3zl + split + norm! j08|3zl + split + norm! j08|3zl + split + norm! j016|3zl + split + norm! j016|3zl + split + norm! j016|3zl + split + call wincol() + mksession! test_mks.out + let li = filter(readfile('test_mks.out'), 'v:val =~# "\\(^ *normal! 0\\|^ *exe ''normal!\\)"') + let expected =<< trim [DATA] + normal! 016| + normal! 016| + normal! 016| + normal! 08| + normal! 08| + normal! 016| + normal! 016| + normal! 016| + exe 'normal! ' . s:c . '|zs' . 16 . '|' + normal! 016| + exe 'normal! ' . s:c . '|zs' . 16 . '|' + normal! 016| + exe 'normal! ' . s:c . '|zs' . 16 . '|' + normal! 016| + exe 'normal! ' . s:c . '|zs' . 8 . '|' + normal! 08| + exe 'normal! ' . s:c . '|zs' . 8 . '|' + normal! 08| + exe 'normal! ' . s:c . '|zs' . 16 . '|' + normal! 016| + exe 'normal! ' . s:c . '|zs' . 16 . '|' + normal! 016| + exe 'normal! ' . s:c . '|zs' . 16 . '|' + normal! 016| + exe 'normal! ' . s:c . '|zs' . 16 . '|' + normal! 016| + [DATA] + + call assert_equal(expected, li) + tabclose! + + call delete('test_mks.out') + call delete(tmpfile) + let &wrap = wrap_save + set sessionoptions& splitbelow& fileencoding& +endfunc + +func Test_session_multibyte_mappings() + " some characters readily available on european keyboards, + " as well as characters containing 0x80 or 0x9b bytes + let entries = [ + \ ['n', 'ç', 'ç'], + \ ['n', 'º', 'º'], + \ ['n', '¡', '¡'], + \ ['n', '<M-ç>', '<M-ç>'], + \ ['n', '<M-º>', '<M-º>'], + \ ['n', '<M-¡>', '<M-¡>'], + \ ['n', '…', 'ě'], + \ ['n', 'ě', '…'], + \ ['n', '<M-…>', '<M-ě>'], + \ ['n', '<M-ě>', '<M-…>'], + \ ] + for entry in entries + exe entry[0] .. 'map ' .. entry[1] .. ' ' .. entry[2] + endfor + + mkmnvrc Xtestmnvrc + + nmapclear + + for entry in entries + call assert_equal('', maparg(entry[1], entry[0])) + endfor + + source Xtestmnvrc + + for entry in entries + call assert_equal(entry[2], maparg(entry[1], entry[0])) + endfor + + nmapclear + + call delete('Xtestmnvrc') +endfunc + +" mnv: shiftwidth=2 sts=2 expandtab |
