From 03a0e5d8b3cc727f664ef489f60c46f69dc0ad2c Mon Sep 17 00:00:00 2001 From: Israel Chauca Fuentes Date: Fri, 10 Feb 2017 00:32:17 -0500 Subject: [PATCH] Simplify the format of the tests. --- test/_setup.vim | 24 ++++-------- test/autoclose_matchpairs.vim | 62 +++++++++++++++---------------- test/autoclose_quotes.vim | 70 +++++++++++++++++------------------ 3 files changed, 73 insertions(+), 83 deletions(-) diff --git a/test/_setup.vim b/test/_setup.vim index b6f2af3..e67cff1 100644 --- a/test/_setup.vim +++ b/test/_setup.vim @@ -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 diff --git a/test/autoclose_matchpairs.vim b/test/autoclose_matchpairs.vim index 56c802e..9b5168a 100644 --- a/test/autoclose_matchpairs.vim +++ b/test/autoclose_matchpairs.vim @@ -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\"], "") -call DMTest_pairs('()', ["a)", 'ax'], "()x") +call DMTest_pairs('', "i(", "()") +call DMTest_pairs('()', "a\", "") +call DMTest_pairs('()', "a)x", "()x") "call DMTest_pairs('', "((\gx", "(())x") -call DMTest_pairs('', ["i(x\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\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('', "(\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\", "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()\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\", 'ax'], "( x )") -" needs to be after so the cursor stays in the expected place for when -" the :doau commands fire. -call DMTest_pairs('( )', ["2|a\\", 'ix'], "(x)") -call DMTest_pairs('', ["iabc ", 'ax'], "abc x") +call DMTest_pairs('', "i(\x", "( x )") +call DMTest_pairs('( )', "2|a\x", "(x)") +call DMTest_pairs('', "iabc x", "abc x") let g:delimitMate_autoclose = 0 -call DMTest_pairs('', ["i(", "a)", "a\", "a\\", "ix"], "(x)") +call DMTest_pairs('', "i()\\x", "(x)") let g:delimitMate_autoclose = 1 " Handle backspace gracefully. set backspace= -call DMTest_pairs('', ["i(", "a\\", "ix"], "(x)") +call DMTest_pairs('', "i(\a\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\", "a("], "abc (а") -call DMTest_pairs("abc ñ", ["A\", "a("], "abc (ñ") -call DMTest_pairs("abc $", ["A\", "a("], "abc ($") -call DMTest_pairs("abc £", ["A\", "a("], "abc (£") -call DMTest_pairs("abc d", ["A\", "a("], "abc (d") -call DMTest_pairs("abc .", ["A\", "a("], "abc ().") -call DMTest_pairs("abc ", ["A\", "a("], "abc () ") -call DMTest_pairs("abc (", ["A\", "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\u(c)b\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() diff --git a/test/autoclose_quotes.vim b/test/autoclose_quotes.vim index 0bd8d7f..0db8faf 100644 --- a/test/autoclose_quotes.vim +++ b/test/autoclose_quotes.vim @@ -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\", "ax"], "x") +call DMTest_quotes('', "i'x", "'x'") +call DMTest_quotes('', "i'x\u", "") +call DMTest_quotes('', "i''x", "''x") +call DMTest_quotes("''", "a\x", "x") "call DMTest_quotes('', "'\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('', "'\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\", "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''\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('', "'\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\", "ax"], "'x'") +call DMTest_quotes('', "a'\a\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'\", "ix"], "'''x''' ") -call DMTest_quotes("''' ", ["lla'\", "ix"], "''''x'''' ") -call DMTest_quotes(' ', ["i'", "a'\", "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('', "'\\", "''") +" expand iabbreviations +iabb def ghi +call DMTest_quotes('', "idef'", "ghi'", 'a:typed =~ "^idef[''`«|]"') +iunabb def +""call DMTest_quotes('', "'\\", "''") call vimtest#Quit()