0
0
mirror of https://github.com/vim/vim.git synced 2025-09-29 04:34:16 -04:00

patch 8.0.0385: no tests for arabic

Problem:    No tests for arabic.
Solution:   Add a first test for arabic. (Dominique Pelle, closes #1518)
This commit is contained in:
Bram Moolenaar
2017-02-27 21:48:26 +01:00
parent d512e17ea4
commit b5e8377364
4 changed files with 97 additions and 1 deletions

View File

@@ -2092,6 +2092,7 @@ test1 \
# Run individual NEW style test, assuming that Vim was already compiled. # Run individual NEW style test, assuming that Vim was already compiled.
test_arglist \ test_arglist \
test_arabic \
test_assert \ test_assert \
test_assign \ test_assign \
test_autochdir \ test_autochdir \

View File

@@ -133,7 +133,8 @@ SCRIPTS_GUI =
# Tests using runtest.vim.vim. # Tests using runtest.vim.vim.
# Keep test_alot*.res as the last one, sort the others. # 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_assert.res \
test_autochdir.res \ test_autochdir.res \
test_backspace_opt.res \ test_backspace_opt.res \

View File

@@ -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

View File

@@ -764,6 +764,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
385,
/**/ /**/
384, 384,
/**/ /**/