mirror of
https://github.com/Raimondi/delimitMate.git
synced 2026-01-21 02:22:17 +08:00
Simplify the format of the tests.
This commit is contained in:
@@ -37,9 +37,6 @@ endfunction
|
||||
"function! DMTest_single(setup, typed, expected[, skip_expr[, todo_expr]])
|
||||
" Runs a single test (add 1 to vimtap#Plan())
|
||||
function! DMTest_single(setup, typed, expected, ...)
|
||||
if type(a:typed) != v:t_list
|
||||
return vimtap#Fail('Second argument should be a list: ' . a:typed)
|
||||
end
|
||||
if type(a:setup) == v:t_list
|
||||
let setup = copy(a:setup)
|
||||
else
|
||||
@@ -58,21 +55,16 @@ function! DMTest_single(setup, typed, expected, ...)
|
||||
call vimtap#Todo(1)
|
||||
endif
|
||||
call s:setup_buffer(setup)
|
||||
for cmd in a:typed
|
||||
echom strtrans(cmd)
|
||||
call feedkeys(cmd, 'mt')
|
||||
call feedkeys('', 'x')
|
||||
doau delimitMate CursorMovedI
|
||||
doau delimitMate TextChangedI
|
||||
call feedkeys('', 'x')
|
||||
endfor
|
||||
call vimtap#Is(getline(1,'$'), expected, string(map(copy(a:typed), 'strtrans(v:val)')))
|
||||
echom strtrans(a:typed)
|
||||
call feedkeys(a:typed, 'mt')
|
||||
call test_disable_char_avail(1)
|
||||
call feedkeys('', 'x')
|
||||
call feedkeys('', 'x')
|
||||
call test_disable_char_avail(0)
|
||||
call vimtap#Is(getline(1,'$'), expected, strtrans(a:typed))
|
||||
endfunction
|
||||
|
||||
function! s:do_set(pat, sub, set, setup, typed, expected, ...)
|
||||
if type(a:typed) != v:t_list
|
||||
return vimtap#Fail('Second argument should be a list: ' . string(a:typed))
|
||||
end
|
||||
let skip_expr = get(a:, '1', '')
|
||||
let todo_expr = get(a:, '2', '')
|
||||
let escaped = '\.*^$'
|
||||
@@ -97,7 +89,7 @@ function! s:do_set(pat, sub, set, setup, typed, expected, ...)
|
||||
let sub = eval(a:sub)
|
||||
endif
|
||||
call map(setup, "substitute(v:val, a:pat, sub, 'g')")
|
||||
let typed = map(copy(a:typed), "substitute(v:val, a:pat, sub, 'g')")
|
||||
let typed = substitute(a:typed, a:pat, sub, 'g')
|
||||
call map(expected, "substitute(v:val, a:pat, sub, 'g')")
|
||||
call DMTest_single(setup, typed, expected, skip_expr, todo_expr)
|
||||
endfor
|
||||
|
||||
@@ -15,39 +15,37 @@ call vimtap#Plan(210)
|
||||
|
||||
let g:delimitMate_matchpairs = '(:),{:},[:],<:>,¿:?,¡:!,,::'
|
||||
let g:delimitMate_autoclose = 1
|
||||
call DMTest_pairs('', ["i("], "()")
|
||||
call DMTest_pairs('()', ["a\<BS>"], "")
|
||||
call DMTest_pairs('()', ["a)", 'ax'], "()x")
|
||||
call DMTest_pairs('', "i(", "()")
|
||||
call DMTest_pairs('()', "a\<BS>", "")
|
||||
call DMTest_pairs('()', "a)x", "()x")
|
||||
"call DMTest_pairs('', "((\<C-G>gx", "(())x")
|
||||
call DMTest_pairs('', ["i(x\<Esc>u"], "")
|
||||
call DMTest_pairs('', ["i@", "a(","ax"], "@(x)")
|
||||
call DMTest_pairs('@#', ["a(","ax"], "@(x)#")
|
||||
call DMTest_pairs('\', ["a(","ax"], '\(x')
|
||||
call DMTest_pairs('', ["a(",'a\', 'a)', "ax"], '(\)x)')
|
||||
call DMTest_pairs('', "i(x\<Esc>u", "")
|
||||
call DMTest_pairs('', "i@(x", "@(x)")
|
||||
call DMTest_pairs('@#', "a(x", "@(x)#")
|
||||
call DMTest_pairs('\', "a(x", '\(x')
|
||||
call DMTest_pairs('(\)', "la)x", '(\)x)')
|
||||
"call DMTest_pairs('', "(\<S-Tab>x", "()x")
|
||||
let g:delimitMate_autoclose = 0
|
||||
call DMTest_pairs('', ["i(", "ax"], "(x")
|
||||
call DMTest_pairs('', ["i(", "a)", "ax"], "(x)")
|
||||
call DMTest_pairs('', ["i(", "a)", "a)", "ax"], "()x")
|
||||
call DMTest_pairs('', ["i(", "a)", "a\<BS>", "ax"], "x")
|
||||
call DMTest_pairs('', ["i@(", "a)", "ax"], "@(x)")
|
||||
call DMTest_pairs('@#', ["a(", "a)", "ax"], "@(x)#")
|
||||
call DMTest_pairs('', "i(x", "(x")
|
||||
call DMTest_pairs('', "i()x", "(x)")
|
||||
call DMTest_pairs('', "i())x", "()x")
|
||||
call DMTest_pairs('', "i()\<BS>x", "x")
|
||||
call DMTest_pairs('', "i@()x", "@(x)")
|
||||
call DMTest_pairs('@#', "a()x", "@(x)#")
|
||||
let g:delimitMate_expand_space = 1
|
||||
let g:delimitMate_autoclose = 1
|
||||
call DMTest_pairs('', ['i(', "a\<Space>", 'ax'], "( x )")
|
||||
" <Right> needs to be after <BS> so the cursor stays in the expected place for when
|
||||
" the :doau commands fire.
|
||||
call DMTest_pairs('( )', ["2|a\<BS>\<Right>", 'ix'], "(x)")
|
||||
call DMTest_pairs('', ["iabc ", 'ax'], "abc x")
|
||||
call DMTest_pairs('', "i(\<Space>x", "( x )")
|
||||
call DMTest_pairs('( )', "2|a\<BS>x", "(x)")
|
||||
call DMTest_pairs('', "iabc x", "abc x")
|
||||
let g:delimitMate_autoclose = 0
|
||||
call DMTest_pairs('', ["i(", "a)", "a\<Space>", "a\<BS>\<Right>", "ix"], "(x)")
|
||||
call DMTest_pairs('', "i()\<Space>\<BS>x", "(x)")
|
||||
let g:delimitMate_autoclose = 1
|
||||
" Handle backspace gracefully.
|
||||
set backspace=
|
||||
call DMTest_pairs('', ["i(", "a\<BS>\<Right>", "ix"], "(x)")
|
||||
call DMTest_pairs('', "i(\<Esc>a\<BS>x", "(x)")
|
||||
set backspace=2
|
||||
" closing parens removes characters. #133
|
||||
call DMTest_pairs('', ["i(", "aa", "i)"], "()a)")
|
||||
call DMTest_pairs('(a)', "a)", "()a)")
|
||||
|
||||
" Add semicolon next to the closing paren. Issue #77.
|
||||
"new
|
||||
@@ -59,23 +57,23 @@ call DMTest_pairs('', ["i(", "aa", "i)"], "()a)")
|
||||
" Expand iabbreviations
|
||||
iabb def ghi
|
||||
" TODO not sure how to make this test actually test if the feature works.
|
||||
call DMTest_pairs('', ["idef("], "ghi()", '', 1)
|
||||
call DMTest_pairs('', "idef(", "ghi()") ", '', 1)
|
||||
iunabb def
|
||||
|
||||
call DMTest_pairs("abc а", ["A\<Left>", "a("], "abc (а")
|
||||
call DMTest_pairs("abc ñ", ["A\<Left>", "a("], "abc (ñ")
|
||||
call DMTest_pairs("abc $", ["A\<Left>", "a("], "abc ($")
|
||||
call DMTest_pairs("abc £", ["A\<Left>", "a("], "abc (£")
|
||||
call DMTest_pairs("abc d", ["A\<Left>", "a("], "abc (d")
|
||||
call DMTest_pairs("abc .", ["A\<Left>", "a("], "abc ().")
|
||||
call DMTest_pairs("abc ", ["A\<Left>", "a("], "abc () ")
|
||||
call DMTest_pairs("abc (", ["A\<Left>", "a("], "abc ((")
|
||||
call DMTest_pairs("abc а", "$i(", "abc (а")
|
||||
call DMTest_pairs("abc ñ", "$i(", "abc (ñ")
|
||||
call DMTest_pairs("abc $", "$i(", "abc ($")
|
||||
call DMTest_pairs("abc £", "$i(", "abc (£")
|
||||
call DMTest_pairs("abc d", "$i(", "abc (d")
|
||||
call DMTest_pairs("abc .", "$i(", "abc ().")
|
||||
call DMTest_pairs("abc ", "$i(", "abc () ")
|
||||
call DMTest_pairs("abc (", "$i(", "abc ((")
|
||||
|
||||
"" Play nice with undo.
|
||||
"call DMTest_pairs('', "a\<C-G>u(c)b\<C-O>u", "a")
|
||||
"
|
||||
let g:delimitMate_autoclose = 1
|
||||
let g:delimitMate_balance_pairs = 1
|
||||
call DMTest_pairs('ab cd)', ["2|a(", "ax"], 'ab(x cd)')
|
||||
call DMTest_pairs('ab cd)', "2|a(x", 'ab(x cd)')
|
||||
|
||||
call vimtest#Quit()
|
||||
|
||||
@@ -11,31 +11,30 @@
|
||||
" - Add 5 to vimtap#Plan().
|
||||
|
||||
call vimtest#StartTap()
|
||||
call vimtap#Plan(140)
|
||||
call vimtap#Plan(145)
|
||||
|
||||
let g:delimitMate_autoclose = 1
|
||||
call DMTest_quotes('', ["i'", "ax"], "'x'")
|
||||
call DMTest_quotes('', ["i'x", "u"], "")
|
||||
call DMTest_quotes('', ["i'", "a'", "ax"], "''x", 'a:typed[0] == "i«"')
|
||||
call DMTest_quotes('', ["a'", "a\<BS>", "ax"], "x")
|
||||
call DMTest_quotes('', "i'x", "'x'")
|
||||
call DMTest_quotes('', "i'x\<Esc>u", "")
|
||||
call DMTest_quotes('', "i''x", "''x")
|
||||
call DMTest_quotes("''", "a\<BS>x", "x")
|
||||
"call DMTest_quotes('', "'\<C-G>gx", "''x")
|
||||
" This will fail for double quote.
|
||||
call DMTest_quotes('', ["i'", "a\"", "ax"], "'\"x\"'", 'a:typed[0] =~ "i[\"«]"')
|
||||
call DMTest_quotes('', ["i@", "a'", "ax"], "@'x'")
|
||||
call DMTest_quotes('', ["i@#", "i'", "ax"], "@'x'#")
|
||||
call DMTest_quotes('', "i'\"x", "'\"x\"'", 'a:typed =~ "i\"\"x"')
|
||||
call DMTest_quotes('', "i@'x", "@'x'")
|
||||
call DMTest_quotes('@#', "a'x", "@'x'#")
|
||||
"call DMTest_quotes('', "'\<S-Tab>x", "''x")
|
||||
call DMTest_quotes('', ["iabc", "a'"], "abc'")
|
||||
call DMTest_quotes('abc\', ["A'", "ax"], "abc\\'x")
|
||||
" TODO find out why this test doesn't work when it does interactively.
|
||||
call DMTest_quotes('', ["au", "a'", "aПривет", "a'"], "u'Привет'", '', 1)
|
||||
call DMTest_quotes('', ["au", "a'", "astring", "a'"], "u'string'")
|
||||
call DMTest_quotes('abc', "A'", "abc'")
|
||||
call DMTest_quotes('abc\', "A'x", "abc\\'x")
|
||||
call DMTest_quotes('', "au'Привет'", "u'Привет'")
|
||||
call DMTest_quotes('', "au'string'", "u'string'")
|
||||
let g:delimitMate_autoclose = 0
|
||||
call DMTest_quotes('', ["a'", "ax"], "'x")
|
||||
call DMTest_quotes('', ["a'", "a'", "ax"], "'x'")
|
||||
call DMTest_quotes('', ["a'", "a'", "a'", "ax"], "''x")
|
||||
call DMTest_quotes('', ["a'", "a'", "a\<BS>", "ax"], "x")
|
||||
call DMTest_quotes('', ["a@", "a'", "a'", "ax"], "@'x'")
|
||||
call DMTest_quotes('', ["a@#", "i'", "a'", "ax"], "@'x'#")
|
||||
call DMTest_quotes('', "a'x", "'x")
|
||||
call DMTest_quotes('', "a''x", "'x'")
|
||||
call DMTest_quotes('', "a'''x", "''x")
|
||||
call DMTest_quotes('', "a''\<BS>x", "x")
|
||||
call DMTest_quotes('', "a@''x", "@'x'")
|
||||
call DMTest_quotes('@#', "a''x", "@'x'#")
|
||||
let g:delimitMate_autoclose = 1
|
||||
"let g:delimitMate_expand_space = 1
|
||||
"call DMTest_quotes('', "'\<Space>x", "' x'")
|
||||
@@ -48,30 +47,31 @@ let g:delimitMate_autoclose = 1
|
||||
"let g:delimitMate_autoclose = 1
|
||||
" Handle backspace gracefully.
|
||||
set backspace=
|
||||
call DMTest_quotes('', ["a'", "a\<BS>", "ax"], "'x'")
|
||||
call DMTest_quotes('', "a'\<Esc>a\<BS>x", "'x'")
|
||||
set backspace=2
|
||||
"set cpo=ces$
|
||||
"call DMTest_quotes('', "'x", "'x'")
|
||||
" Make sure smart quote works beyond first column.
|
||||
call DMTest_quotes(' ', ["a'", "ax"], " 'x'")
|
||||
call DMTest_quotes(' ', "a'x", " 'x'")
|
||||
" smart quote, check fo char on the right.
|
||||
call DMTest_quotes('a b', ["la'"], "a 'b")
|
||||
call DMTest_quotes('a b', "la'", "a 'b")
|
||||
" Make sure we jump over a quote on the right. #89.
|
||||
call DMTest_quotes('', ["a(", "a'", "atest", "a'", "ax"], "('test'x)")
|
||||
call DMTest_quotes('', "a('test'x", "('test'x)")
|
||||
" Duplicate whole line when inserting quote at bol #105
|
||||
call DMTest_quotes('}', ["i'"], "''}")
|
||||
call DMTest_quotes("'abc ", ["A'"], "'abc '")
|
||||
call DMTest_quotes("''abc ", ["A'"], "''abc ''")
|
||||
"" Nesting quotes:
|
||||
call DMTest_quotes('}', "i'", "''}")
|
||||
call DMTest_quotes("'abc ", "A'", "'abc '")
|
||||
call DMTest_quotes("''abc ", "A'", "''abc ''")
|
||||
" Nesting quotes:
|
||||
let g:delimitMate_nesting_quotes = delimitMate#option('quotes')
|
||||
call DMTest_quotes("'' ", ["la'\<Right>", "ix"], "'''x''' ")
|
||||
call DMTest_quotes("''' ", ["lla'\<Right>", "ix"], "''''x'''' ")
|
||||
call DMTest_quotes(' ', ["i'", "a'\<Right>", "ix"], "''x ")
|
||||
call DMTest_quotes('', ["i'", "ax"], "'x'")
|
||||
call DMTest_quotes("''", "A'x", "'''x'''")
|
||||
call DMTest_quotes("'''", "A'x", "''''x''''")
|
||||
call DMTest_quotes('', "i''x", "''x")
|
||||
call DMTest_quotes('', "i'x", "'x'")
|
||||
unlet g:delimitMate_nesting_quotes
|
||||
"" expand iabbreviations
|
||||
"iabb def ghi
|
||||
"call DMTest_quotes('', "def'", "ghi'")
|
||||
"call DMTest_quotes('', "'\<CR>\<BS>", "''")
|
||||
" expand iabbreviations
|
||||
iabb def ghi
|
||||
call DMTest_quotes('', "idef'", "ghi'", 'a:typed =~ "^idef[''`«|]"')
|
||||
iunabb def
|
||||
""call DMTest_quotes('', "'\<CR>\<BS>", "''")
|
||||
|
||||
call vimtest#Quit()
|
||||
|
||||
Reference in New Issue
Block a user