aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/functional/helpers.lua84
-rw-r--r--test/legacy/002_filename_recognition_spec.lua42
-rw-r--r--test/legacy/test2-filename-recognition.vroom40
3 files changed, 126 insertions, 40 deletions
diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua
new file mode 100644
index 0000000000..2b9ddfbe3c
--- /dev/null
+++ b/test/functional/helpers.lua
@@ -0,0 +1,84 @@
+local function clear()
+ nvim_command('call BeforeEachTest()')
+end
+
+local function feed(...)
+ for _, v in ipairs({...}) do
+ nvim_feed(nvim_replace_termcodes(dedent(v)))
+ end
+end
+
+local function rawfeed(...)
+ for _, v in ipairs({...}) do
+ nvim_feed(dedent(v), 'nt')
+ end
+end
+
+local function insert(...)
+ nvim_feed('i', 'nt')
+ rawfeed(...)
+ nvim_feed(nvim_replace_termcodes('<ESC>'), 'nt')
+end
+
+local function execute(...)
+ for _, v in ipairs({...}) do
+ if v:sub(1, 1) ~= '/' then
+ -- not a search command, prefix with colon
+ nvim_feed(':', 'nt')
+ end
+ nvim_feed(v, 'nt')
+ nvim_feed(nvim_replace_termcodes('<CR>'), 'nt')
+ end
+end
+
+local function expect(contents, first, last, buffer_index)
+ return assert.are.same(dedent(contents),
+ buffer_slice(first, last, buffer_idx))
+end
+
+rawfeed([[:function BeforeEachTest()
+ set all&
+ redir => groups
+ silent augroup
+ redir END
+ for group in split(groups)
+ exe 'augroup '.group
+ autocmd!
+ augroup END
+ endfor
+ autocmd!
+ tabnew
+ let curbufnum = eval(bufnr('%'))
+ redir => buflist
+ silent ls!
+ redir END
+ let bufnums = []
+ for buf in split(buflist, '\n')
+ let bufnum = eval(split(buf, '[ u]')[0])
+ if bufnum != curbufnum
+ call add(bufnums, bufnum)
+ endif
+ endfor
+ if len(bufnums) > 0
+ exe 'silent bwipeout! '.join(bufnums, ' ')
+ endif
+ silent tabonly
+ for k in keys(g:)
+ exe 'unlet g:'.k
+ endfor
+ filetype plugin indent off
+ mapclear
+ mapclear!
+ abclear
+ comclear
+endfunction
+]])
+
+return {
+ clear = clear,
+ rawfeed = rawfeed,
+ insert = insert,
+ feed = feed,
+ execute = execute,
+ expect = expect
+}
diff --git a/test/legacy/002_filename_recognition_spec.lua b/test/legacy/002_filename_recognition_spec.lua
new file mode 100644
index 0000000000..569e748631
--- /dev/null
+++ b/test/legacy/002_filename_recognition_spec.lua
@@ -0,0 +1,42 @@
+-- Test if URLs are recognized as filenames by commands such as "gf". Here
+-- we'll use `expand("<cfile>")` since "gf" would need to open the file.
+
+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 recognition', function()
+ setup(clear)
+
+ it('is working', function()
+ -- insert some lines containing URLs
+ insert([[
+ first test for URL://machine.name/tmp/vimtest2a and other text
+ second test for URL://machine.name/tmp/vimtest2b. And other text
+ third test for URL:\\machine.name\vimtest2c and other text
+ fourth test for URL:\\machine.name\tmp\vimtest2d, and other text]])
+
+ -- Go to the first URL and append it to the beginning
+ execute('/^first', '/tmp', 'call append(0, expand("<cfile>"))')
+
+ -- Repeat for the second URL
+ -- this time, navigate to the word "URL" instead of "tmp"
+ execute('/^second', '/URL', 'call append(1, expand("<cfile>"))')
+
+ -- Repeat for the remaining URLs. This time, the 'isfname' option must be
+ -- set to allow '\' in filenames
+ execute('set isf=@,48-57,/,.,-,_,+,,,$,:,~,\\')
+ execute('/^third', '/name', 'call append(2, expand("<cfile>"))')
+ execute('/^fourth', '/URL', 'call append(3, expand("<cfile>"))')
+
+ -- Delete the initial text, which now starts at line 5
+ feed('5GdG')
+
+ -- The buffer should now contain:
+ expect([[
+ URL://machine.name/tmp/vimtest2a
+ URL://machine.name/tmp/vimtest2b
+ URL:\\machine.name\vimtest2c
+ URL:\\machine.name\tmp\vimtest2d]])
+ end)
+end)
diff --git a/test/legacy/test2-filename-recognition.vroom b/test/legacy/test2-filename-recognition.vroom
deleted file mode 100644
index b8169ec207..0000000000
--- a/test/legacy/test2-filename-recognition.vroom
+++ /dev/null
@@ -1,40 +0,0 @@
-Test if URLs are recognized as filenames by commands such as "gf". Here
-we'll use `expand("<cfile>")` since "gf" would need to open the file.
-
-Insert some URLs:
-
- % first test for URL://machine.name/tmp/vimtest2a and other text<cr>
- % second test for URL://machine.name/tmp/vimtest2b. And other text<cr>
- % third test for URL:\\machine.name\vimtest2c and other text<cr>
- % fourth test for URL:\\machine.name\tmp\vimtest2d, and other text
-
-Go to the first URL:
-
- :/^first<cr>/tmp
-
-Append the url to the beginning of the buffer:
-
- :call append(0, expand("<cfile>"))
-
-Repeat for the second URL, but navigate to the 'URL' word:
-
- :/^second<cr>/URL<cr>:call append(1, expand("<cfile>"))
-
-Repeat for the other two, but first the 'isfname' option must be set to
-allow '\' in filenames
-
- :set isf=@,48-57,/,.,-,_,+,,,$,:,~,\
- :/^third<cr>/name<cr>:call append(2, expand("<cfile>"))
- :/^fourth<cr>/URL<cr>:call append(3, expand("<cfile>"))
-
-Delete the initial text which starts at line 5:
-
- > 5GdG
-
-Result:
-
- URL://machine.name/tmp/vimtest2a
- URL://machine.name/tmp/vimtest2b
- URL:\\machine.name\vimtest2c
- URL:\\machine.name\tmp\vimtest2d
- @end