diff src/testdir/test_maparg.vim @ 17930:0cdb6ac20748 v8.1.1961

patch 8.1.1961: more functions can be used as a method Commit: https://github.com/vim/vim/commit/a1449836334355b1fb00cd1bf083e7d353f6c4d7 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Sep 1 20:16:52 2019 +0200 patch 8.1.1961: more functions can be used as a method Problem: More functions can be used as a method. Solution: Allow more functions to be used as a method. Add a test for mapcheck().
author Bram Moolenaar <Bram@vim.org>
date Sun, 01 Sep 2019 20:30:04 +0200
parents e17cbc3e545d
children 643c6c3c0da4
line wrap: on
line diff
--- a/src/testdir/test_maparg.vim
+++ b/src/testdir/test_maparg.vim
@@ -1,5 +1,6 @@
 " Tests for maparg().
 " Also test utf8 map with a 0x80 byte.
+" Also test mapcheck()
 
 function s:SID()     
   return str2nr(matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze_SID$'))
@@ -22,7 +23,7 @@ function Test_maparg()
   call assert_equal({'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v',
         \ 'nowait': 0, 'expr': 1, 'sid': sid, 'lnum': lnum + 2,
 	\ 'rhs': 'isbar', 'buffer': 1},
-        \ maparg('bar', '', 0, 1))
+        \ 'bar'->maparg('', 0, 1))
   let lnum = expand('<sflnum>')
   map <buffer> <nowait> foo bar
   call assert_equal({'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ',
@@ -46,6 +47,45 @@ function Test_maparg()
   unmap abc
 endfunction
 
+func Test_mapcheck()
+  call assert_equal('', mapcheck('a'))
+  call assert_equal('', mapcheck('abc'))
+  call assert_equal('', mapcheck('ax'))
+  call assert_equal('', mapcheck('b'))
+
+  map a something
+  call assert_equal('something', mapcheck('a'))
+  call assert_equal('something', mapcheck('a', 'n'))
+  call assert_equal('', mapcheck('a', 'c'))
+  call assert_equal('', mapcheck('a', 'i'))
+  call assert_equal('something', 'abc'->mapcheck())
+  call assert_equal('something', 'ax'->mapcheck())
+  call assert_equal('', mapcheck('b'))
+  unmap a
+
+  map ab foobar
+  call assert_equal('foobar', mapcheck('a'))
+  call assert_equal('foobar', mapcheck('abc'))
+  call assert_equal('', mapcheck('ax'))
+  call assert_equal('', mapcheck('b'))
+  unmap ab
+
+  map abc barfoo
+  call assert_equal('barfoo', mapcheck('a'))
+  call assert_equal('barfoo', mapcheck('a', 'n', 0))
+  call assert_equal('', mapcheck('a', 'n', 1))
+  call assert_equal('barfoo', mapcheck('abc'))
+  call assert_equal('', mapcheck('ax'))
+  call assert_equal('', mapcheck('b'))
+  unmap abc
+
+  abbr ab abbrev
+  call assert_equal('abbrev', mapcheck('a', 'i', 1))
+  call assert_equal('', mapcheck('a', 'n', 1))
+  call assert_equal('', mapcheck('a', 'i', 0))
+  unabbr ab
+endfunc
+
 function Test_range_map()
   new
   " Outside of the range, minimum