diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-02-27 21:48:26 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-02-27 21:48:26 +0100 |
commit | b5e8377364110ee70090274da15d202778e96a64 (patch) | |
tree | caa02b1dec88c11db30144e6050e24323c73f4b5 /src | |
parent | d512e17ea4cebe547197b759a047138228acc06f (diff) | |
download | vim-b5e8377364110ee70090274da15d202778e96a64.zip |
patch 8.0.0385: no tests for arabic
Problem: No tests for arabic.
Solution: Add a first test for arabic. (Dominique Pelle, closes #1518)
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile | 1 | ||||
-rw-r--r-- | src/testdir/Make_all.mak | 3 | ||||
-rw-r--r-- | src/testdir/test_arabic.vim | 92 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 97 insertions, 1 deletions
diff --git a/src/Makefile b/src/Makefile index 09adb9a2b..0bdd1d470 100644 --- a/src/Makefile +++ b/src/Makefile @@ -2092,6 +2092,7 @@ test1 \ # Run individual NEW style test, assuming that Vim was already compiled. test_arglist \ + test_arabic \ test_assert \ test_assign \ test_autochdir \ diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak index 18dfdc8e7..513fd8971 100644 --- a/src/testdir/Make_all.mak +++ b/src/testdir/Make_all.mak @@ -133,7 +133,8 @@ SCRIPTS_GUI = # Tests using runtest.vim.vim. # Keep test_alot*.res as the last one, sort the others. -NEW_TESTS = test_arglist.res \ +NEW_TESTS = test_arabic.res \ + test_arglist.res \ test_assert.res \ test_autochdir.res \ test_backspace_opt.res \ diff --git a/src/testdir/test_arabic.vim b/src/testdir/test_arabic.vim new file mode 100644 index 000000000..b9e033462 --- /dev/null +++ b/src/testdir/test_arabic.vim @@ -0,0 +1,92 @@ +" 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 diff --git a/src/version.c b/src/version.c index 713b54c2b..4479cc216 100644 --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 385, +/**/ 384, /**/ 383, |