tests: Migrate legacy tests 92 and 93 #2261

This commit is contained in:
David Bürgin 2015-03-22 23:27:01 +01:00 committed by Justin M. Keyes
parent 7a5a85d2c4
commit d41322fafb
7 changed files with 193 additions and 149 deletions

View File

@ -27,7 +27,6 @@ SCRIPTS := test_autoformat_join.out \
test76.out test78.out test79.out test80.out \
test82.out test83.out test85.out \
test86.out test87.out test88.out \
test92.out test93.out \
test96.out test99.out \
test_listlbr.out \
test_breakindent.out

View File

@ -1,48 +0,0 @@
vim: set ft=vim fenc=utf-8:
Tests if :mksession saves cursor columns correctly in presence of tab and
multibyte characters when fileencoding=utf-8.
STARTTEST
:so mbyte.vim
:if !has('mksession')
: e! test.ok
: wq! test.out
:endif
:set sessionoptions=buffers splitbelow fileencoding=utf-8
/^start:
:vsplit
j16|:split
j16|:split
j16|:split
j8|:split
j8|:split
j16|:split
j16|:split
j16|:wincmd l
/^start:
:set nowrap
j16|3zl:split
j016|3zl:split
j016|3zl:split
j08|3zl:split
j08|3zl:split
j016|3zl:split
j016|3zl:split
j016|3zl:split
:mksession! test.out
:new test.out
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d
:w! test.out
:qa!
ENDTEST
start:
no multibyte chAracter
one leaDing tab
four leadinG spaces
two consecutive tabs
two tabs in one line
one … multibyteCharacter
a “b” two multiByte characters
“c”1€ three mulTibyte characters

View File

@ -1,26 +0,0 @@
normal! 016|
normal! 016|
normal! 016|
normal! 08|
normal! 08|
normal! 016|
normal! 016|
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 8 . '|'
normal! 08|
exe 'normal! ' . s:c . '|zs' . 8 . '|'
normal! 08|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|

View File

@ -1,48 +0,0 @@
vim: set ft=vim fenc=latin1:
Tests if :mksession saves cursor columns correctly in presence of tab and
multibyte characters when fileencoding=latin1.
STARTTEST
:so mbyte.vim
:if !has('mksession')
: e! test.ok
: wq! test.out
:endif
:set sessionoptions=buffers splitbelow fileencoding=latin1
/^start:
:vsplit
j16|:split
j16|:split
j16|:split
j8|:split
j8|:split
j16|:split
j16|:split
j16|:wincmd l
/^start:
:set nowrap
j16|3zl:split
j016|3zl:split
j016|3zl:split
j08|3zl:split
j08|3zl:split
j016|3zl:split
j016|3zl:split
j016|3zl:split
:mksession! test.out
:new test.out
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d
:w! test.out
:qa!
ENDTEST
start:
no multibyte chAracter
one leaDing tab
four leadinG spaces
two consecutive tabs
two tabs in one line
one ä multibyteCharacter
aä Ä two multiByte characters
Aäöü three mulTibyte characters

View File

@ -1,26 +0,0 @@
normal! 016|
normal! 016|
normal! 016|
normal! 08|
normal! 08|
normal! 016|
normal! 016|
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 8 . '|'
normal! 08|
exe 'normal! ' . s:c . '|zs' . 8 . '|'
normal! 08|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|

View File

@ -0,0 +1,98 @@
-- Tests if :mksession saves cursor columns correctly in presence of tab and
-- multibyte characters when fileencoding=utf-8.
--
-- Same as legacy test 93 but using UTF-8 file encoding.
local helpers = require('test.functional.helpers')
local feed, insert, source = helpers.feed, helpers.insert, helpers.source
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
describe('store cursor position in session file in UTF-8', function()
setup(clear)
teardown(function()
os.remove('test.in')
os.remove('test.out')
end)
it('is working', function()
insert([[
start:
no multibyte chAracter
one leaDing tab
four leadinG spaces
two consecutive tabs
two tabs in one line
one multibyteCharacter
a b two multiByte characters
c1 three mulTibyte characters]])
-- This test requires the buffer to correspond to a file on disk, here named
-- "test.in", because otherwise :mksession won't write out the cursor column
-- info needed for verification.
execute('write! test.in')
execute('set sessionoptions=buffers splitbelow fileencoding=utf-8')
-- Move the cursor through the buffer lines and position it with "|". Using
-- :split after every normal mode command is a trick to have multiple
-- cursors on the screen that can all be stored in the session file.
execute('/^start:')
execute('vsplit')
feed('j16|:split<cr>')
feed('j16|:split<cr>')
feed('j16|:split<cr>')
feed('j8|:split<cr>')
feed('j8|:split<cr>')
feed('j16|:split<cr>')
feed('j16|:split<cr>')
feed('j16|')
-- Again move the cursor through the buffer and position it with "|". This
-- time also perform a horizontal scroll at every step.
execute('wincmd l')
execute('/^start:')
execute('set nowrap')
feed('j16|3zl:split<cr>')
feed('j016|3zl:split<cr>')
feed('j016|3zl:split<cr>')
feed('j08|3zl:split<cr>')
feed('j08|3zl:split<cr>')
feed('j016|3zl:split<cr>')
feed('j016|3zl:split<cr>')
feed('j016|3zl:split<cr>')
-- Create the session file, read it back in, and prepare for verification.
execute('mksession! test.out')
execute('new test.out')
execute([[v/\(^ *normal! 0\|^ *exe 'normal!\)/d]])
-- Assert buffer contents.
expect([[
normal! 016|
normal! 016|
normal! 016|
normal! 08|
normal! 08|
normal! 016|
normal! 016|
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 8 . '|'
normal! 08|
exe 'normal! ' . s:c . '|zs' . 8 . '|'
normal! 08|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|]])
end)
end)

View File

@ -0,0 +1,95 @@
-- Tests if :mksession saves cursor columns correctly in presence of tab and
-- multibyte characters when fileencoding=latin1.
--
-- Same as legacy test 92 but using Latin-1 file encoding.
local helpers = require('test.functional.helpers')
local feed, insert, source = helpers.feed, helpers.insert, helpers.source
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
describe('store cursor position in session file in Latin-1', function()
setup(clear)
teardown(function()
os.remove('test.in')
os.remove('test.out')
end)
it('is working', function()
insert([[
start:
no multibyte chAracter
one leaDing tab
four leadinG spaces
two consecutive tabs
two tabs in one line
one ä multibyteCharacter
Ä two multiByte characters
Aäöü three mulTibyte characters]])
-- Must write buffer to disk for :mksession. See the comments in
-- "092_mksession_cursor_cols_utf8_spec.lua".
execute('write! test.in')
execute('set sessionoptions=buffers splitbelow fileencoding=latin1')
-- Move the cursor through the buffer lines and position it with "|".
execute('/^start:')
execute('vsplit')
feed('j16|:split<cr>')
feed('j16|:split<cr>')
feed('j16|:split<cr>')
feed('j8|:split<cr>')
feed('j8|:split<cr>')
feed('j16|:split<cr>')
feed('j16|:split<cr>')
feed('j16|')
-- Again move the cursor through the buffer and position it with "|". This
-- time also perform a horizontal scroll at every step.
execute('wincmd l')
execute('/^start:')
execute('set nowrap')
feed('j16|3zl:split<cr>')
feed('j016|3zl:split<cr>')
feed('j016|3zl:split<cr>')
feed('j08|3zl:split<cr>')
feed('j08|3zl:split<cr>')
feed('j016|3zl:split<cr>')
feed('j016|3zl:split<cr>')
feed('j016|3zl:split<cr>')
-- Create the session file, read it back in, and prepare for verification.
execute('mksession! test.out')
execute('new test.out')
execute([[v/\(^ *normal! 0\|^ *exe 'normal!\)/d]])
-- Assert buffer contents.
expect([[
normal! 016|
normal! 016|
normal! 016|
normal! 08|
normal! 08|
normal! 016|
normal! 016|
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 8 . '|'
normal! 08|
exe 'normal! ' . s:c . '|zs' . 8 . '|'
normal! 08|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|
exe 'normal! ' . s:c . '|zs' . 16 . '|'
normal! 016|]])
end)
end)