vim-patch:8.2.0712: various code not fully tested

Problem:    Various code not fully tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes vim/vim#6049)
0ff5dedf0f

Nvim does not support encoding=latin1 or setting keycodes/termcaps.
This commit is contained in:
zeertzjq 2022-09-22 12:07:16 +08:00
parent 71e70d0c99
commit 5d1cb73e7f
4 changed files with 89 additions and 0 deletions

View File

@ -462,6 +462,12 @@ func Test_tolower()
" invalid memory.
call tolower("\xC0\x80\xC0")
call tolower("123\xC0\x80\xC0")
" Test in latin1 encoding
let save_enc = &encoding
" set encoding=latin1
call assert_equal("abc", tolower("ABC"))
let &encoding = save_enc
endfunc
func Test_toupper()
@ -533,6 +539,12 @@ func Test_toupper()
" invalid memory.
call toupper("\xC0\x80\xC0")
call toupper("123\xC0\x80\xC0")
" Test in latin1 encoding
let save_enc = &encoding
" set encoding=latin1
call assert_equal("ABC", toupper("abc"))
let &encoding = save_enc
endfunc
func Test_tr()
@ -1096,6 +1108,10 @@ func Test_filewritable()
call assert_equal(0, filewritable('doesnotexist'))
call mkdir('Xdir')
call assert_equal(2, filewritable('Xdir'))
call delete('Xdir', 'd')
call delete('Xfilewritable')
bw!
endfunc

View File

@ -282,6 +282,15 @@ func Test_set_completion()
call feedkeys(":set fileencodings:\<C-A>\<C-B>\"\<CR>", 'tx')
call assert_equal('"set fileencodings:ucs-bom,utf-8,default,latin1', @:)
" Expand key codes.
" call feedkeys(":set <H\<C-A>\<C-B>\"\<CR>", 'tx')
" call assert_equal('"set <Help> <Home>', @:)
" Expand terminal options.
" call feedkeys(":set t_A\<C-A>\<C-B>\"\<CR>", 'tx')
" call assert_equal('"set t_AB t_AF t_AU t_AL', @:)
" call assert_fails('call feedkeys(":set <t_afoo>=\<C-A>\<CR>", "xt")', 'E474:')
" Expand directories.
call feedkeys(":set cdpath=./\<C-A>\<C-B>\"\<CR>", 'tx')
call assert_match('./samples/ ', @:)

View File

@ -141,3 +141,41 @@ func Test_system_with_shell_quote()
call delete('Xdir with spaces', 'rf')
endtry
endfunc
" Test for 'shellxquote'
func Test_Shellxquote()
CheckUnix
let save_shell = &shell
let save_sxq = &shellxquote
let save_sxe = &shellxescape
call writefile(['#!/bin/sh', 'echo "Cmd: [$*]" > Xlog'], 'Xtestshell')
call setfperm('Xtestshell', "r-x------")
set shell=./Xtestshell
set shellxquote=\\"
call feedkeys(":!pwd\<CR>\<CR>", 'xt')
call assert_equal(['Cmd: [-c "pwd"]'], readfile('Xlog'))
set shellxquote=(
call feedkeys(":!pwd\<CR>\<CR>", 'xt')
call assert_equal(['Cmd: [-c (pwd)]'], readfile('Xlog'))
set shellxquote=\\"(
call feedkeys(":!pwd\<CR>\<CR>", 'xt')
call assert_equal(['Cmd: [-c "(pwd)"]'], readfile('Xlog'))
set shellxescape=\"&<<()@^
set shellxquote=(
call feedkeys(":!pwd\"&<<{}@^\<CR>\<CR>", 'xt')
call assert_equal(['Cmd: [-c (pwd^"^&^<^<{}^@^^)]'], readfile('Xlog'))
let &shell = save_shell
let &shellxquote = save_sxq
let &shellxescape = save_sxe
call delete('Xtestshell')
call delete('Xlog')
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@ -1,4 +1,30 @@
" Test for translation of special key codes (<xF1>, <xF2>, etc.)
func Test_Keycode_Translation()
let keycodes = [
\ ["<xUp>", "<Up>"],
\ ["<xDown>", "<Down>"],
\ ["<xLeft>", "<Left>"],
\ ["<xRight>", "<Right>"],
\ ["<xHome>", "<Home>"],
\ ["<xEnd>", "<End>"],
\ ["<zHome>", "<Home>"],
\ ["<zEnd>", "<End>"],
\ ["<xF1>", "<F1>"],
\ ["<xF2>", "<F2>"],
\ ["<xF3>", "<F3>"],
\ ["<xF4>", "<F4>"],
\ ["<S-xF1>", "<S-F1>"],
\ ["<S-xF2>", "<S-F2>"],
\ ["<S-xF3>", "<S-F3>"],
\ ["<S-xF4>", "<S-F4>"]]
for [k1, k2] in keycodes
exe "nnoremap " .. k1 .. " 2wx"
call assert_true(maparg(k1, 'n', 0, 1).lhs == k2)
exe "nunmap " .. k1
endfor
endfunc
" Test for terminal keycodes that doesn't have termcap entries
func Test_special_term_keycodes()
new