Mercurial > vim
view src/testdir/test_arabic.vim @ 10992:441ca654f65c v8.0.0385
patch 8.0.0385: no tests for arabic
commit https://github.com/vim/vim/commit/b5e8377364110ee70090274da15d202778e96a64
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Feb 27 21:48:26 2017 +0100
patch 8.0.0385: no tests for arabic
Problem: No tests for arabic.
Solution: Add a first test for arabic. (Dominique Pelle, closes https://github.com/vim/vim/issues/1518)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 27 Feb 2017 22:00:05 +0100 |
parents | |
children | 307f9ae2a7fb |
line wrap: on
line source
" Simplistic testing of Arabic mode. if !has('arabic') finish endif set encoding=utf-8 scriptencoding utf-8 " Return list of utf8 sequences of each character at line lnum. " Combining characters are treated as a single item. func GetCharsUtf8(lnum) call cursor(a:lnum, 1) let chars = [] let numchars = strchars(getline('.'), 1) for i in range(1, numchars) exe 'norm ' i . '|' call add(chars, execute('norm g8')) endfor return chars endfunc func Test_arabic_toggle() set arabic call assert_equal(1, &rightleft) call assert_equal(1, &arabicshape) call assert_equal('arabic', &keymap) call assert_equal(1, &delcombine) set iminsert=1 imsearch=1 set arabic& call assert_equal(0, &rightleft) call assert_equal(1, &arabicshape) call assert_equal('arabic', &keymap) call assert_equal(1, &delcombine) call assert_equal(0, &iminsert) call assert_equal(-1, &imsearch) set arabicshape& keymap= delcombine& endfunc func Test_arabic_input() new set arabic " Typing sghl in Arabic insert mode should show the " Arabic word 'Salaam' i.e. 'peace'. call feedkeys('isghl', 'tx') redraw call assert_equal([ \ "\nd8 b3 ", \ "\nd9 84 + d8 a7 ", \ "\nd9 85 "], GetCharsUtf8(1)) " Without shaping, it should give individual Arabic letters. set noarabicshape redraw call assert_equal([ \ "\nd8 b3 ", \ "\nd9 84 ", \ "\nd8 a7 ", \ "\nd9 85 "], GetCharsUtf8(1)) set arabicshape& set arabic& bwipe! endfunc func Test_arabic_toggle_keymap() new set arabic call feedkeys("i12\<C-^>12\<C-^>12", 'tx') redraw call assert_equal('١٢12١٢', getline('.')) set arabic& bwipe! endfunc func Test_delcombine() new set arabic call feedkeys("isghl\<BS>\<BS>", 'tx') redraw call assert_equal(["\nd8 b3 ", "\nd9 84 "], GetCharsUtf8(1)) " Now the same with nodelcombine set nodelcombine %d call feedkeys("isghl\<BS>\<BS>", 'tx') call assert_equal(["\nd8 b3 "], GetCharsUtf8(1)) set arabic& bwipe! endfunc