diff options
Diffstat (limited to 'test/functional/legacy')
-rw-r--r-- | test/functional/legacy/005_bufleave_delete_buffer.lua | 71 | ||||
-rw-r--r-- | test/functional/legacy/025_jump_tag_hidden_spec.lua | 50 | ||||
-rw-r--r-- | test/functional/legacy/026_execute_while_if_spec.lua | 66 | ||||
-rw-r--r-- | test/functional/legacy/033_lisp_indent_spec.lua | 73 | ||||
-rw-r--r-- | test/functional/legacy/043_magic_settings_spec.lua | 61 | ||||
-rw-r--r-- | test/functional/legacy/051_highlight_spec.lua | 70 | ||||
-rw-r--r-- | test/functional/legacy/066_visual_block_tab_spec.lua | 64 | ||||
-rw-r--r-- | test/functional/legacy/067_augroup_exists_spec.lua | 46 | ||||
-rw-r--r-- | test/functional/legacy/075_maparg_spec.lua | 58 | ||||
-rw-r--r-- | test/functional/legacy/101_hlsearch_spec.lua | 62 | ||||
-rw-r--r-- | test/functional/legacy/104_let_assignment.lua | 54 | ||||
-rw-r--r-- | test/functional/legacy/105_filename_modifiers_spec.lua | 79 |
12 files changed, 754 insertions, 0 deletions
diff --git a/test/functional/legacy/005_bufleave_delete_buffer.lua b/test/functional/legacy/005_bufleave_delete_buffer.lua new file mode 100644 index 0000000000..e8459ad4a7 --- /dev/null +++ b/test/functional/legacy/005_bufleave_delete_buffer.lua @@ -0,0 +1,71 @@ +-- Test for autocommand that deletes the current buffer on BufLeave event. +-- Also test deleting the last buffer, should give a new, empty buffer. + +local helpers = require('test.functional.helpers') +local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert +local execute, expect = helpers.execute, helpers.expect + +describe('test5', function() + setup(clear) + + it('is working', function() + insert([[ + start of test file Xxx + vim: set noai : + this is a test + this is a test + this is a test + this is a test + end of test file Xxx]]) + + execute('w! Xxx0') + execute('au BufLeave Xxx bwipe') + execute('/start of') + + -- Write test file Xxx. + execute('.,/end of/w! Xxx') + + -- Split to Xxx. + execute('sp Xxx') + + -- Delete buffer Xxx, now we're back here. + execute('bwipe') + feed('G?this is a<cr>') + feed('othis is some more text<esc>') + + -- Append some text to this file. + + -- Write current file contents. + execute('?start?,$yank A') + + -- Delete alternate buffer. + execute('bwipe test.out') + execute('au bufleave test5.in bwipe') + + -- Delete current buffer, get an empty one. + execute('bwipe!') + feed('ithis is another test line<esc>:yank A<cr>') + + -- Output results + execute('%d') + execute('0put a') + execute('1d | $d') + + -- Assert buffer contents. + expect([[ + start of test file Xxx + vim: set noai : + this is a test + this is a test + this is a test + this is a test + this is some more text + end of test file Xxx + this is another test line]]) + end) + + teardown(function() + os.remove('Xxx') + os.remove('Xxx0') + end) +end) diff --git a/test/functional/legacy/025_jump_tag_hidden_spec.lua b/test/functional/legacy/025_jump_tag_hidden_spec.lua new file mode 100644 index 0000000000..bd434c013c --- /dev/null +++ b/test/functional/legacy/025_jump_tag_hidden_spec.lua @@ -0,0 +1,50 @@ +-- Test for jumping to a tag with 'hidden' set, with symbolic link in path of tag. +-- This only works for Unix, because of the symbolic link. + +local helpers = require('test.functional.helpers') +local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert +local execute, expect = helpers.execute, helpers.expect + +describe('jump to a tag with hidden set', function() + setup(clear) + + it('is working', function() + insert([[ + tags line: + SECTION_OFF /test25.dir/Xxx /^#define SECTION_OFF 3$/ + + /*tx.c*/ + #define SECTION_OFF 3 + #define NUM_SECTIONS 3 + + SECTION_OFF]]) + + execute('w! Xxx') + execute('set hidden') + + -- Create a link from test25.dir to the current directory. + execute('!rm -f test25.dir') + execute('!ln -s . test25.dir') + + -- Create tags.text, with the current directory name inserted. + execute('/tags line') + execute('r !pwd') + feed('d$/test<cr>') + feed('hP:.w! tags.test<cr>') + + -- Try jumping to a tag in the current file, but with a path that contains a + -- symbolic link. When wrong, this will give the ATTENTION message. The next + -- space will then be eaten by hit-return, instead of moving the cursor to 'd'. + execute('set tags=tags.test') + feed('G<C-]> x:yank a<cr>') + execute('!rm -f Xxx test25.dir tags.test') + + -- Put @a and remove empty line + execute('%d') + execute('0put a') + execute('$d') + + -- Assert buffer contents. + expect("#efine SECTION_OFF 3") + end) +end) diff --git a/test/functional/legacy/026_execute_while_if_spec.lua b/test/functional/legacy/026_execute_while_if_spec.lua new file mode 100644 index 0000000000..9acbf76673 --- /dev/null +++ b/test/functional/legacy/026_execute_while_if_spec.lua @@ -0,0 +1,66 @@ +-- Test for :execute, :while and :if + +local helpers = require('test.functional.helpers') +local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert +local execute, expect = helpers.execute, helpers.expect +local source = helpers.source + +describe(':execute, :while and :if', function() + setup(clear) + + it('is working', function() + source([[ + let i = 0 + while i < 12 + let i = i + 1 + if has("ebcdic") + execute "normal o" . i . "\047" + else + execute "normal o" . i . "\033" + endif + if i % 2 + normal Ax + if i == 9 + break + endif + if i == 5 + continue + else + let j = 9 + while j > 0 + if has("ebcdic") + execute "normal" j . "a" . j . "\x27" + else + execute "normal" j . "a" . j . "\x1b" + endif + let j = j - 1 + endwhile + endif + endif + if i == 9 + if has("ebcdic") + execute "normal Az\047" + else + execute "normal Az\033" + endif + endif + endwhile + unlet i j + ]]) + + -- Remove empty line + execute('1d') + + -- Assert buffer contents. + expect([[ + 1x999999999888888887777777666666555554444333221 + 2 + 3x999999999888888887777777666666555554444333221 + 4 + 5x + 6 + 7x999999999888888887777777666666555554444333221 + 8 + 9x]]) + end) +end) diff --git a/test/functional/legacy/033_lisp_indent_spec.lua b/test/functional/legacy/033_lisp_indent_spec.lua new file mode 100644 index 0000000000..3ee248815d --- /dev/null +++ b/test/functional/legacy/033_lisp_indent_spec.lua @@ -0,0 +1,73 @@ +-- vim: set foldmethod=marker foldmarker=[[,]] : +-- Test for 'lisp' +-- If the lisp feature is not enabled, this will fail! + +local helpers = require('test.functional.helpers') +local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert +local execute, expect = helpers.execute, helpers.expect + +describe('lisp indent', function() + setup(clear) + + it('is working', function() + insert([[ + (defun html-file (base) + (format nil "~(~A~).html" base)) + + (defmacro page (name title &rest body) + (let ((ti (gensym))) + `(with-open-file (*standard-output* + (html-file ,name) + :direction :output + :if-exists :supersede) + (let ((,ti ,title)) + (as title ,ti) + (with center + (as h2 (string-upcase ,ti))) + (brs 3) + ,@body)))) + + ;;; Utilities for generating links + + (defmacro with-link (dest &rest body) + `(progn + (format t "<a href=\"~A\">" (html-file ,dest)) + ,@body + (princ "</a>")))]]) + + execute('set lisp expandtab') + execute('/^(defun') + feed('=G:/^(defun/,$yank A<cr>') + + -- Put @a and clean empty line + execute('%d') + execute('0put a') + execute('$d') + + -- Assert buffer contents. + expect([[ + (defun html-file (base) + (format nil "~(~A~).html" base)) + + (defmacro page (name title &rest body) + (let ((ti (gensym))) + `(with-open-file (*standard-output* + (html-file ,name) + :direction :output + :if-exists :supersede) + (let ((,ti ,title)) + (as title ,ti) + (with center + (as h2 (string-upcase ,ti))) + (brs 3) + ,@body)))) + + ;;; Utilities for generating links + + (defmacro with-link (dest &rest body) + `(progn + (format t "<a href=\"~A\">" (html-file ,dest)) + ,@body + (princ "</a>")))]]) + end) +end) diff --git a/test/functional/legacy/043_magic_settings_spec.lua b/test/functional/legacy/043_magic_settings_spec.lua new file mode 100644 index 0000000000..ccef298cdd --- /dev/null +++ b/test/functional/legacy/043_magic_settings_spec.lua @@ -0,0 +1,61 @@ +-- vim: set foldmethod=marker foldmarker=[[,]] : +-- Tests for regexp with various magic settings. + +local helpers = require('test.functional.helpers') +local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert +local execute, expect = helpers.execute, helpers.expect + +describe('regexp with magic settings', function() + setup(clear) + + it('is working', function() + insert([[ + 1 a aa abb abbccc + 2 d dd dee deefff + 3 g gg ghh ghhiii + 4 j jj jkk jkklll + 5 m mm mnn mnnooo + 6 x ^aa$ x + 7 (a)(b) abbaa + 8 axx [ab]xx + 9 foobar + ]]) + + execute('set nocompatible viminfo+=nviminfo') + execute('/^1') + execute([[/a*b\{2}c\+/e]]) + feed([[x/\Md\*e\{2}f\+/e<cr>]]) + feed('x:set nomagic<cr>') + execute([[/g\*h\{2}i\+/e]]) + feed([[x/\mj*k\{2}l\+/e<cr>]]) + feed([[x/\vm*n{2}o+/e<cr>]]) + feed([[x/\V^aa$<cr>]]) + feed('x:set magic<cr>') + execute([[/\v(a)(b)\2\1\1/e]]) + feed([[x/\V[ab]\(\[xy]\)\1<cr>]]) + feed('x:$<cr>') + execute('set undolevels=100') + feed('dv?bar?<cr>') + feed('Yup:<cr>') + execute('?^1?,$yank A') + + -- Put @a and clean empty line + execute('%d') + execute('0put a') + execute('$d') + + -- Assert buffer contents. + expect([[ + 1 a aa abb abbcc + 2 d dd dee deeff + 3 g gg ghh ghhii + 4 j jj jkk jkkll + 5 m mm mnn mnnoo + 6 x aa$ x + 7 (a)(b) abba + 8 axx ab]xx + 9 foobar + 9 foo + ]]) + end) +end) diff --git a/test/functional/legacy/051_highlight_spec.lua b/test/functional/legacy/051_highlight_spec.lua new file mode 100644 index 0000000000..f35b70f93f --- /dev/null +++ b/test/functional/legacy/051_highlight_spec.lua @@ -0,0 +1,70 @@ +-- vim: set foldmethod=marker foldmarker=[[,]] : +-- Tests for ":highlight". + +local helpers = require('test.functional.helpers') +local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert +local execute, expect = helpers.execute, helpers.expect + +describe(':highlight', function() + setup(clear) + + it('is working', function() + -- Basic test if ":highlight" doesn't crash + execute('highlight') + execute('hi Search') + + -- Test setting colors. + -- Test clearing one color and all doesn't generate error or warning + execute('hi NewGroup term=bold cterm=italic ctermfg=DarkBlue ctermbg=Grey gui= guifg=#00ff00 guibg=Cyan') + execute('hi Group2 term= cterm=') + execute('hi Group3 term=underline cterm=bold') + execute('redir! @a') + execute('hi NewGroup') + execute('hi Group2') + execute('hi Group3') + execute('hi clear NewGroup') + execute('hi NewGroup') + execute('hi Group2') + execute('hi Group2 NONE') + execute('hi Group2') + execute('hi clear') + execute('hi Group3') + execute([[hi Crash term='asdf]]) + execute('redir END') + + -- Filter ctermfg and ctermbg, the numbers depend on the terminal + execute('0put a') + execute([[%s/ctermfg=\d*/ctermfg=2/]]) + execute([[%s/ctermbg=\d*/ctermbg=3/]]) + + -- Filter out possibly translated error message + execute('%s/E475: [^:]*:/E475:/') + + -- Fix the fileformat + execute('set ff&') + execute('$d') + + -- Assert buffer contents. + expect([[ + + + NewGroup xxx term=bold cterm=italic ctermfg=2 ctermbg=3 + + Group2 xxx cleared + + Group3 xxx term=underline cterm=bold + + + NewGroup xxx cleared + + Group2 xxx cleared + + + Group2 xxx cleared + + + Group3 xxx cleared + + E475: term='asdf]]) + end) +end) diff --git a/test/functional/legacy/066_visual_block_tab_spec.lua b/test/functional/legacy/066_visual_block_tab_spec.lua new file mode 100644 index 0000000000..cd283e6746 --- /dev/null +++ b/test/functional/legacy/066_visual_block_tab_spec.lua @@ -0,0 +1,64 @@ +-- vim: set foldmethod=marker foldmarker=[[,]] : +-- Test for visual block shift and tab characters. + +local helpers = require('test.functional.helpers') +local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert +local execute, expect = helpers.execute, helpers.expect + +describe('visual block shift and tab characters', function() + setup(clear) + + it('is working', function() + insert([[ + one two three + one two three + one two three + one two three + one two three + + abcdefghijklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz]]) + + feed('gg') + feed([[fe<C-v>4jR<esc>ugvr1:'<,'>yank A<cr>]]) + execute('/^abcdefgh') + feed('<C-v>4jI <esc>j<<11|D') + feed('j7|a <esc>') + feed('j7|a <esc>') + feed('j7|a <esc>4k13|<C-v>4j<') + execute('$-5,$yank A') + execute([[$-4,$s/\s\+//g]]) + feed('<C-v>4kI <esc>j<<') + feed('j7|a <esc>') + feed('j7|a <esc>') + feed('j7|a <esc>4k13|<C-v>4j3<') + execute('$-4,$yank A') + + -- Put @a and clean empty lines + execute('%d') + execute('0put a') + execute('$d') + + -- Assert buffer contents. + expect([[ + on1 two three + on1 two three + on1 two three + on1 two three + on1 two three + + abcdefghijklmnopqrstuvwxyz + abcdefghij + abc defghijklmnopqrstuvwxyz + abc defghijklmnopqrstuvwxyz + abc defghijklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + abcdefghij + abc defghijklmnopqrstuvwxyz + abc defghijklmnopqrstuvwxyz + abc defghijklmnopqrstuvwxyz]]) + end) +end) diff --git a/test/functional/legacy/067_augroup_exists_spec.lua b/test/functional/legacy/067_augroup_exists_spec.lua new file mode 100644 index 0000000000..6d89ad6d55 --- /dev/null +++ b/test/functional/legacy/067_augroup_exists_spec.lua @@ -0,0 +1,46 @@ +-- Test that groups and patterns are tested correctly when calling exists() for +-- autocommands. + +local helpers = require('test.functional.helpers') +local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert +local execute, expect = helpers.execute, helpers.expect + +describe('augroup when calling exists()', function() + setup(clear) + + it('is working', function() + execute('let results=[]') + execute('call add(results, "##BufEnter: " . exists("##BufEnter"))') + execute('call add(results, "#BufEnter: " . exists("#BufEnter"))') + execute('au BufEnter * let g:entered=1') + execute('call add(results, "#BufEnter: " . exists("#BufEnter"))') + execute('call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))') + execute('augroup auexists', 'au BufEnter * let g:entered=1', 'augroup END') + execute('call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))') + execute('call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))') + execute('au BufEnter *.test let g:entered=1') + execute('call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))') + execute('edit testfile.test') + execute('call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))') + execute('au BufEnter <buffer> let g:entered=1') + execute('call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))') + execute('edit testfile2.test') + execute('call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))') + execute('bf') + execute('call append(0, results)') + execute('$d') + + -- Assert buffer contents. + expect([[ + ##BufEnter: 1 + #BufEnter: 0 + #BufEnter: 1 + #auexists#BufEnter: 0 + #auexists#BufEnter: 1 + #BufEnter#*.test: 0 + #BufEnter#*.test: 1 + #BufEnter#<buffer>: 0 + #BufEnter#<buffer>: 1 + #BufEnter#<buffer>: 0]]) + end) +end) diff --git a/test/functional/legacy/075_maparg_spec.lua b/test/functional/legacy/075_maparg_spec.lua new file mode 100644 index 0000000000..dac8940314 --- /dev/null +++ b/test/functional/legacy/075_maparg_spec.lua @@ -0,0 +1,58 @@ +-- Tests for maparg(). +-- Also test utf8 map with a 0x80 byte. + +local helpers = require('test.functional.helpers') +local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert +local execute, expect = helpers.execute, helpers.expect + +describe('maparg()', function() + setup(clear) + + it('is working', function() + execute('set cpo-=<') + execute('set encoding=utf8') + + -- Test maparg() with a string result + execute('map foo<C-V> is<F4>foo') + execute('vnoremap <script> <buffer> <expr> <silent> bar isbar') + execute([[call append('$', maparg('foo<C-V>'))]]) + execute([[call append('$', string(maparg('foo<C-V>', '', 0, 1)))]]) + execute([[call append('$', string(maparg('bar', '', 0, 1)))]]) + execute('map <buffer> <nowait> foo bar') + execute([[call append('$', string(maparg('foo', '', 0, 1)))]]) + execute('map abc x<char-114>x') + execute([[call append('$', maparg('abc'))]]) + execute('map abc y<S-char-114>y') + execute([[call append('$', maparg('abc'))]]) + feed('Go<esc>:<cr>') + + -- Outside of the range, minimum + execute('inoremap <Char-0x1040> a') + execute([[execute "normal a\u1040\<Esc>"]]) + + -- Inside of the range, minimum + execute('inoremap <Char-0x103f> b') + execute([[execute "normal a\u103f\<Esc>"]]) + + -- Inside of the range, maximum + execute('inoremap <Char-0xf03f> c') + execute([[execute "normal a\uf03f\<Esc>"]]) + + -- Outside of the range, maximum + execute('inoremap <Char-0xf040> d') + execute([[execute "normal a\uf040\<Esc>"]]) + + -- Remove empty line + execute('1d') + + -- Assert buffer contents. + expect([[ + is<F4>foo + {'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'nowait': 0, 'expr': 0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0} + {'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'nowait': 0, 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1} + {'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ', 'nowait': 1, 'expr': 0, 'sid': 0, 'rhs': 'bar', 'buffer': 1} + xrx + yRy + abcd]]) + end) +end) diff --git a/test/functional/legacy/101_hlsearch_spec.lua b/test/functional/legacy/101_hlsearch_spec.lua new file mode 100644 index 0000000000..4a3abb19ce --- /dev/null +++ b/test/functional/legacy/101_hlsearch_spec.lua @@ -0,0 +1,62 @@ +-- Test for v:hlsearch + +local helpers = require('test.functional.helpers') +local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert +local execute, expect = helpers.execute, helpers.expect + +describe('v:hlsearch', function() + setup(clear) + + it('is working', function() + -- Last abc: Q + execute('new') + execute([[call setline(1, repeat(['aaa'], 10))]]) + execute('set hlsearch nolazyredraw') + execute('let r=[]') + execute('command -nargs=0 -bar AddR :call add(r, [screenattr(1, 1), v:hlsearch])') + execute('/aaa') + execute('AddR') + execute('nohlsearch') + execute('AddR') + execute('let v:hlsearch=1') + execute('AddR') + execute('let v:hlsearch=0') + execute('AddR') + execute('set hlsearch') + execute('AddR') + execute('let v:hlsearch=0') + execute('AddR') + feed('n:AddR<cr>') + execute('let v:hlsearch=0') + execute('AddR') + execute('/') + execute('AddR') + execute('let r1=r[0][0]') + + -- I guess it is not guaranteed that screenattr outputs always the same character + execute([[call map(r, 'v:val[1].":".(v:val[0]==r1?"highlighted":"not highlighted")')]]) + execute('try') + execute(' let v:hlsearch=[]') + execute('catch') + execute([[ call add(r, matchstr(v:exception,'^Vim(let):E\d\+:'))]]) + execute('endtry') + execute('bwipeout!') + execute('$put=r') + execute('call garbagecollect(1)') + execute('call getchar()') + execute('1d') + + -- Assert buffer contents. + expect([[ + 1:highlighted + 0:not highlighted + 1:highlighted + 0:not highlighted + 1:highlighted + 0:not highlighted + 1:highlighted + 0:not highlighted + 1:highlighted + Vim(let):E706:]]) + end) +end) diff --git a/test/functional/legacy/104_let_assignment.lua b/test/functional/legacy/104_let_assignment.lua new file mode 100644 index 0000000000..a2431da835 --- /dev/null +++ b/test/functional/legacy/104_let_assignment.lua @@ -0,0 +1,54 @@ +-- Tests for :let. + +local helpers = require('test.functional.helpers') +local clear, source = helpers.clear, helpers.source +local execute, expect = helpers.execute, helpers.expect + +describe(':let', function() + setup(clear) + + it('is working', function() + execute('set runtimepath+=test/functional/fixtures') + + -- Test to not autoload when assigning. It causes internal error. + source([[ + try + let Test104#numvar = function('tr') + $put ='OK: ' . string(Test104#numvar) + catch + $put ='FAIL: ' . v:exception + endtry + let a = 1 + let b = 2 + for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0 == 1 ? "a" : "b"}'] + try + redir => messages + execute 'let' letargs + redir END + $put ='OK:' + $put =split(substitute(messages, '\n', '\0 ', 'g'), '\n') + catch + $put ='FAIL: ' . v:exception + redir END + endtry + endfor]]) + + -- Remove empty line + execute('1d') + + -- Assert buffer contents. + expect([[ + OK: function('tr') + OK: + a #1 + b #2 + OK: + b #2 + OK: + b #2 + a #1 + OK: + a #1 + b #2]]) + end) +end) diff --git a/test/functional/legacy/105_filename_modifiers_spec.lua b/test/functional/legacy/105_filename_modifiers_spec.lua new file mode 100644 index 0000000000..32fa6ac7eb --- /dev/null +++ b/test/functional/legacy/105_filename_modifiers_spec.lua @@ -0,0 +1,79 @@ +-- Test filename modifiers. + +local helpers = require('test.functional.helpers') +local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert +local execute, expect = helpers.execute, helpers.expect + +describe('filename modifiers', function() + setup(clear) + + it('is working', function() + execute('cd /tmp') + execute([=[set shell=sh]=]) + execute([=[set shellslash]=]) + execute([=[let tab="\t"]=]) + execute([=[command -nargs=1 Put :let expr=<q-args> | $put =expr.tab.strtrans(string(eval(expr)))]=]) + execute([=[let $HOME=fnamemodify('.', ':p:h:h:h')]=]) + execute([=[Put fnamemodify('.', ':p' )[-1:]]=]) + execute([=[Put fnamemodify('.', ':p:h' )[-1:]]=]) + execute([=[Put fnamemodify('test.out', ':p' )[-1:]]=]) + execute([=[Put fnamemodify('test.out', ':.' )]=]) + execute([=[Put fnamemodify('../testdir/a', ':.' )]=]) + execute([=[Put fnamemodify('test.out', ':~' )]=]) + execute([=[Put fnamemodify('../testdir/a', ':~' )]=]) + execute([=[Put fnamemodify('../testdir/a', ':t' )]=]) + execute([=[Put fnamemodify('.', ':p:t' )]=]) + execute([=[Put fnamemodify('test.out', ':p:t' )]=]) + execute([=[Put fnamemodify('test.out', ':p:e' )]=]) + execute([=[Put fnamemodify('test.out', ':p:t:e' )]=]) + execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r' )]=]) + execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r:r' )]=]) + execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r:r:r' )]=]) + execute([=[Put substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', '')]=]) + execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e' )]=]) + execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e' )]=]) + execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:e' )]=]) + execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:e:e')]=]) + execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:r' )]=]) + execute([=[Put fnamemodify('abc def', ':S' )]=]) + execute([=[Put fnamemodify('abc" "def', ':S' )]=]) + execute([=[Put fnamemodify('abc"%"def', ':S' )]=]) + execute([=[Put fnamemodify('abc'' ''def', ':S' )]=]) + execute([=[Put fnamemodify('abc''%''def', ':S' )]=]) + execute([=[Put fnamemodify("abc\ndef", ':S' )]=]) + execute([=[set shell=tcsh]=]) + execute([=[Put fnamemodify("abc\ndef", ':S' )]=]) + execute([=[1 delete _]=]) + + -- Assert buffer contents. + expect([=[ + fnamemodify('.', ':p' )[-1:] '/' + fnamemodify('.', ':p:h' )[-1:] 'p' + fnamemodify('test.out', ':p' )[-1:] 't' + fnamemodify('test.out', ':.' ) 'test.out' + fnamemodify('../testdir/a', ':.' ) '../testdir/a' + fnamemodify('test.out', ':~' ) 'test.out' + fnamemodify('../testdir/a', ':~' ) '../testdir/a' + fnamemodify('../testdir/a', ':t' ) 'a' + fnamemodify('.', ':p:t' ) '' + fnamemodify('test.out', ':p:t' ) 'test.out' + fnamemodify('test.out', ':p:e' ) 'out' + fnamemodify('test.out', ':p:t:e' ) 'out' + fnamemodify('abc.fb2.tar.gz', ':r' ) 'abc.fb2.tar' + fnamemodify('abc.fb2.tar.gz', ':r:r' ) 'abc.fb2' + fnamemodify('abc.fb2.tar.gz', ':r:r:r' ) 'abc' + substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', '') '/tmp/abc.fb2' + fnamemodify('abc.fb2.tar.gz', ':e' ) 'gz' + fnamemodify('abc.fb2.tar.gz', ':e:e' ) 'tar.gz' + fnamemodify('abc.fb2.tar.gz', ':e:e:e' ) 'fb2.tar.gz' + fnamemodify('abc.fb2.tar.gz', ':e:e:e:e') 'fb2.tar.gz' + fnamemodify('abc.fb2.tar.gz', ':e:e:r' ) 'tar' + fnamemodify('abc def', ':S' ) '''abc def''' + fnamemodify('abc" "def', ':S' ) '''abc" "def''' + fnamemodify('abc"%"def', ':S' ) '''abc"%"def''' + fnamemodify('abc'' ''def', ':S' ) '''abc''\'''' ''\''''def''' + fnamemodify('abc''%''def', ':S' ) '''abc''\''''%''\''''def''' + fnamemodify("abc\ndef", ':S' ) '''abc^@def''' + fnamemodify("abc\ndef", ':S' ) '''abc\^@def''']=]) + end) +end) |