diff src/testdir/test_expand_func.vim @ 14700:0a3b9ecf7cb8 v8.1.0362

patch 8.1.0362: cannot get the script line number when executing a function commit https://github.com/vim/vim/commit/f29c1c6aa3f365c025890fab5fb9efbe88eb1761 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Sep 10 21:05:02 2018 +0200 patch 8.1.0362: cannot get the script line number when executing a function Problem: Cannot get the script line number when executing a function. Solution: Store the line number besides the script ID. (Ozaki Kiichi, closes #3362) Also display the line number with ":verbose set".
author Christian Brabandt <cb@256bit.org>
date Mon, 10 Sep 2018 21:15:07 +0200
parents
children 81be817c9d9a
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_expand_func.vim
@@ -0,0 +1,66 @@
+" Tests for expand()
+
+let s:sfile = expand('<sfile>')
+let s:slnum = str2nr(expand('<slnum>'))
+let s:sflnum = str2nr(expand('<sflnum>'))
+
+func s:expand_sfile()
+  return expand('<sfile>')  
+endfunc
+
+func s:expand_slnum()
+  return str2nr(expand('<slnum>'))  
+endfunc
+
+func s:expand_sflnum()
+  return str2nr(expand('<sflnum>'))  
+endfunc
+
+func Test_expand_sfile()
+  call assert_match('test_expand_func\.vim$', s:sfile)
+  call assert_match('^function .*\.\.Test_expand_sfile$', expand('<sfile>'))
+
+  " Call in script-local function
+  call assert_match('^function .*\.\.Test_expand_sfile\[5\]\.\.<SNR>\d\+_expand_sfile$', s:expand_sfile())
+
+  " Call in command
+  command Sfile echo expand('<sfile>')
+  call assert_match('^function .*\.\.Test_expand_sfile$', trim(execute('Sfile')))
+  delcommand Sfile
+endfunc
+
+func Test_expand_slnum()
+  call assert_equal(4, s:slnum)
+  call assert_equal(2, str2nr(expand('<slnum>')))
+
+  " Line-continuation
+  call assert_equal(
+        \ 5,
+        \ str2nr(expand('<slnum>')))
+
+  " Call in script-local function
+  call assert_equal(1, s:expand_slnum())
+
+  " Call in command
+  command Slnum echo expand('<slnum>')
+  call assert_equal(14, str2nr(trim(execute('Slnum'))))
+  delcommand Slnum
+endfunc
+
+func Test_expand_sflnum()
+  call assert_equal(5, s:sflnum)
+  call assert_equal(52, str2nr(expand('<sflnum>')))
+
+  " Line-continuation
+  call assert_equal(
+        \ 55,
+        \ str2nr(expand('<sflnum>')))
+
+  " Call in script-local function
+  call assert_equal(16, s:expand_sflnum())
+
+  " Call in command
+  command Flnum echo expand('<sflnum>')
+  call assert_equal(64, str2nr(trim(execute('Flnum'))))
+  delcommand Flnum
+endfunc