summaryrefslogtreecommitdiff
path: root/test/vim/fzf.vader
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2025-01-25 19:57:40 +0900
committerGitHub <noreply@github.com>2025-01-25 19:57:40 +0900
commit0237bf09bf1fe70d94727b040ac39110f56b497f (patch)
treed32061f165f8bd0ba39ef3123623e16be2afe8a1 /test/vim/fzf.vader
parent04017c25bb719c31bb18d43b4bcb96c4736f8d91 (diff)
downloadfzf-0237bf09bf1fe70d94727b040ac39110f56b497f.tar.gz
Split integration test file (#4205)
Diffstat (limited to 'test/vim/fzf.vader')
-rw-r--r--test/vim/fzf.vader175
1 files changed, 175 insertions, 0 deletions
diff --git a/test/vim/fzf.vader b/test/vim/fzf.vader
new file mode 100644
index 00000000..4cb57887
--- /dev/null
+++ b/test/vim/fzf.vader
@@ -0,0 +1,175 @@
+Execute (Setup):
+ let g:dir = fnamemodify(g:vader_file, ':p:h')
+ unlet! g:fzf_layout g:fzf_action g:fzf_history_dir
+ Log 'Test directory: ' . g:dir
+ Save &acd
+
+Execute (fzf#run with dir option):
+ let cwd = getcwd()
+ let result = fzf#run({ 'source': 'git ls-files', 'options': '--filter=vdr', 'dir': g:dir })
+ AssertEqual ['fzf.vader'], result
+ AssertEqual 0, haslocaldir()
+ AssertEqual getcwd(), cwd
+
+ execute 'lcd' fnameescape(cwd)
+ let result = sort(fzf#run({ 'source': 'git ls-files', 'options': '--filter e', 'dir': g:dir }))
+ AssertEqual ['fzf.vader'], result
+ AssertEqual 1, haslocaldir()
+ AssertEqual getcwd(), cwd
+
+Execute (fzf#run with Funcref command):
+ let g:ret = []
+ function! g:FzfTest(e)
+ call add(g:ret, a:e)
+ endfunction
+ let result = sort(fzf#run({ 'source': 'git ls-files', 'sink': function('g:FzfTest'), 'options': '--filter e', 'dir': g:dir }))
+ AssertEqual ['fzf.vader'], result
+ AssertEqual ['fzf.vader'], sort(g:ret)
+
+Execute (fzf#run with string source):
+ let result = sort(fzf#run({ 'source': 'echo hi', 'options': '-f i' }))
+ AssertEqual ['hi'], result
+
+Execute (fzf#run with list source):
+ let result = sort(fzf#run({ 'source': ['hello', 'world'], 'options': '-f e' }))
+ AssertEqual ['hello'], result
+ let result = sort(fzf#run({ 'source': ['hello', 'world'], 'options': '-f o' }))
+ AssertEqual ['hello', 'world'], result
+
+Execute (fzf#run with string source):
+ let result = sort(fzf#run({ 'source': 'echo hi', 'options': '-f i' }))
+ AssertEqual ['hi'], result
+
+Execute (fzf#run with dir option and noautochdir):
+ set noacd
+ let cwd = getcwd()
+ call fzf#run({'source': ['/foobar'], 'sink': 'e', 'dir': '/tmp', 'options': '-1'})
+ " No change in working directory
+ AssertEqual cwd, getcwd()
+
+ call fzf#run({'source': ['/foobar'], 'sink': 'tabe', 'dir': '/tmp', 'options': '-1'})
+ AssertEqual cwd, getcwd()
+ tabclose
+ AssertEqual cwd, getcwd()
+
+Execute (Incomplete fzf#run with dir option and autochdir):
+ set acd
+ let cwd = getcwd()
+ call fzf#run({'source': [], 'sink': 'e', 'dir': '/tmp', 'options': '-0'})
+ " No change in working directory even if &acd is set
+ AssertEqual cwd, getcwd()
+
+Execute (FIXME: fzf#run with dir option and autochdir):
+ set acd
+ call fzf#run({'source': ['/foobar'], 'sink': 'e', 'dir': '/tmp', 'options': '-1'})
+ " Working directory changed due to &acd
+ AssertEqual '/foobar', expand('%')
+ AssertEqual '/', getcwd()
+
+Execute (fzf#run with dir option and autochdir when final cwd is same as dir):
+ set acd
+ cd /tmp
+ call fzf#run({'source': ['/foobar'], 'sink': 'e', 'dir': '/', 'options': '-1'})
+ " Working directory changed due to &acd
+ AssertEqual '/', getcwd()
+
+Execute (fzf#wrap):
+ AssertThrows fzf#wrap({'foo': 'bar'})
+
+ let opts = fzf#wrap('foobar')
+ Log opts
+ AssertEqual 0.9, opts.window.width
+ Assert opts.options =~ '--expect='
+ Assert !has_key(opts, 'sink')
+ Assert has_key(opts, 'sink*')
+
+ let opts = fzf#wrap('foobar', {}, 0)
+ Log opts
+ AssertEqual 0.9, opts.window.width
+
+ let opts = fzf#wrap('foobar', {}, 1)
+ Log opts
+ Assert !has_key(opts, 'window')
+
+ let opts = fzf#wrap('foobar', {'down': '50%'})
+ Log opts
+ AssertEqual '50%', opts.down
+
+ let opts = fzf#wrap('foobar', {'down': '50%'}, 1)
+ Log opts
+ Assert !has_key(opts, 'down')
+
+ let opts = fzf#wrap('foobar', {'sink': 'e'})
+ Log opts
+ AssertEqual 'e', opts.sink
+ Assert !has_key(opts, 'sink*')
+
+ let opts = fzf#wrap('foobar', {'options': '--reverse'})
+ Log opts
+ Assert opts.options =~ '--expect='
+ Assert opts.options =~ '--reverse'
+
+ let g:fzf_layout = {'window': 'enew'}
+ let opts = fzf#wrap('foobar')
+ Log opts
+ AssertEqual 'enew', opts.window
+
+ let opts = fzf#wrap('foobar', {}, 1)
+ Log opts
+ Assert !has_key(opts, 'window')
+
+ let opts = fzf#wrap('foobar', {'right': '50%'})
+ Log opts
+ Assert !has_key(opts, 'window')
+ AssertEqual '50%', opts.right
+
+ let opts = fzf#wrap('foobar', {'right': '50%'}, 1)
+ Log opts
+ Assert !has_key(opts, 'window')
+ Assert !has_key(opts, 'right')
+
+ let g:fzf_action = {'a': 'tabe'}
+ let opts = fzf#wrap('foobar')
+ Log opts
+ Assert opts.options =~ '--expect=a'
+ Assert !has_key(opts, 'sink')
+ Assert has_key(opts, 'sink*')
+
+ let opts = fzf#wrap('foobar', {'sink': 'e'})
+ Log opts
+ AssertEqual 'e', opts.sink
+ Assert !has_key(opts, 'sink*')
+
+ let g:fzf_history_dir = '/tmp'
+ let opts = fzf#wrap('foobar', {'options': '--color light'})
+ Log opts
+ Assert opts.options =~ "--history '/tmp/foobar'"
+ Assert opts.options =~ '--color light'
+
+ let g:fzf_colors = { 'fg': ['fg', 'Error'] }
+ let opts = fzf#wrap({})
+ Assert opts.options =~ '--color=fg:'
+
+Execute (fzf#shellescape with sh):
+ AssertEqual '''''', fzf#shellescape('', 'sh')
+ AssertEqual '''\''', fzf#shellescape('\', 'sh')
+ AssertEqual '''""''', fzf#shellescape('""', 'sh')
+ AssertEqual '''foobar>''', fzf#shellescape('foobar>', 'sh')
+ AssertEqual '''\\\"\\\''', fzf#shellescape('\\\"\\\', 'sh')
+ AssertEqual '''echo ''\''''a''\'''' && echo ''\''''b''\''''''', fzf#shellescape('echo ''a'' && echo ''b''', 'sh')
+
+Execute (fzf#shellescape with cmd.exe):
+ AssertEqual '^"^"', fzf#shellescape('', 'cmd.exe')
+ AssertEqual '^"\\^"', fzf#shellescape('\', 'cmd.exe')
+ AssertEqual '^"\^"\^"^"', fzf#shellescape('""', 'cmd.exe')
+ AssertEqual '^"foobar^>^"', fzf#shellescape('foobar>', 'cmd.exe')
+ AssertEqual '^"\\\\\\\^"\\\\\\^"', fzf#shellescape('\\\"\\\', 'cmd.exe')
+ AssertEqual '^"echo ''a'' ^&^& echo ''b''^"', fzf#shellescape('echo ''a'' && echo ''b''', 'cmd.exe')
+
+ AssertEqual '^"C:\Program Files ^(x86^)\\^"', fzf#shellescape('C:\Program Files (x86)\', 'cmd.exe')
+ AssertEqual '^"C:/Program Files ^(x86^)/^"', fzf#shellescape('C:/Program Files (x86)/', 'cmd.exe')
+ AssertEqual '^"%%USERPROFILE%%^"', fzf#shellescape('%USERPROFILE%', 'cmd.exe')
+
+Execute (Cleanup):
+ unlet g:dir
+ Restore