tests: Migrate legacy test 69.

This commit is contained in:
Lucas Hoffmann 2015-07-09 15:38:56 +02:00
parent 176f223ea3
commit 622a3ae8ea
4 changed files with 339 additions and 358 deletions

View File

@ -28,7 +28,6 @@ SCRIPTS := \
test53.out \
test55.out \
test64.out \
test69.out \
test73.out \
test79.out \
test_listlbr.out \

View File

@ -1,191 +0,0 @@
Test for multi-byte text formatting.
Also test, that 'mps' with multibyte chars works.
And test "ra" on multi-byte characters.
Also test byteidx() and byteidxcomp()
STARTTEST
:
ENDTEST
Results of test69:
STARTTEST
/^{/+1
:set tw=2 fo=t
gqgqjgqgqo
abc 
ENDTEST
{
abc
}
STARTTEST
/^{/+1
:set tw=1 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqo
a
a

ENDTEST
{
a
a
}
STARTTEST
/^{/+1
:set tw=2 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
a
a
a
ab
abc
ab c
ab
ENDTEST
{
a
a
a
ab
abc
ab c
ab
}
STARTTEST
/^{/+1
:set ai tw=2 fo=tm
gqgqjgqgqo
a
ENDTEST
{
a
}
STARTTEST
/^{/+1
:set noai tw=2 fo=tm
gqgqjgqgqo
a
ENDTEST
{
a
}
STARTTEST
/^{/+1
:set tw=2 fo=cqm comments=n:
gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
a
a
a

ENDTEST
{
a
a
a
}
STARTTEST
/^{/+1
:set tw=2 fo=tm
Ra
ENDTEST
{
}
STARTTEST
/^{/+1
:set mps+=u2018:u2019
d%
ENDTEST
{
two three four
}
STARTTEST
/^ra test
jVjra
ENDTEST
ra test
bb
b
STARTTEST
:set whichwrap+=h
/^x
dh
:set whichwrap-=h
ENDTEST
á
x
STARTTEST
:let a = '.é.' " one char of two bytes
:let b = '.é.' " normal e with composing char
/^byteidx
:put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), byteidx(a, 4)])
:put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteidx(b, 4)])
/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcomp(a, 3), byteidxcomp(a, 4)])
:let b = '.é.'
:put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
ENDTEST
byteidx
byteidxcomp
STARTTEST
/^substitute
:let y = substitute('', '\zs', 'a', 'g') | put =y
ENDTEST
substitute
STARTTEST
:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out
ENDTEST

View File

@ -1,166 +0,0 @@
Results of test69:
{
abc
abc
}
{
a
a
a
a
}
{
a
a
a
ab
abc
ab
c
ab
a
a
a
ab
abc
ab
c
ab
}
{
a
a
}
{
a
a
}
{
a
a
a
a
a
a
}
{
a
}
{
four
}
ra test
aaaa
aaa
áx
byteidx
[0, 1, 3, 4, -1]
[0, 1, 4, 5, -1]
byteidxcomp
[0, 1, 3, 4, -1]
[0, 1, 2, 4, 5, -1]
substitute
aaaa

View File

@ -0,0 +1,339 @@
-- Test for multi-byte text formatting.
-- Also test, that 'mps' with multibyte chars works.
-- And test "ra" on multi-byte characters.
-- Also test byteidx() and byteidxcomp()
local helpers = require('test.functional.helpers')
local feed, insert = helpers.feed, helpers.insert
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
describe('multi byte text', function()
before_each(clear)
it('formatting with "set fo=t"', function()
insert([[
{
abc
}]])
execute('/^{/+1')
execute('set tw=2 fo=t')
feed('gqgqjgqgqo<cr>')
feed('<cr>')
feed('abc <esc><esc>')
expect([[
{
abc
abc
}]])
end)
it('formatting with "set fo=tm"', function()
insert([[
{
a
a
}]])
execute('/^{/+1')
execute('set tw=1 fo=tm')
feed('gqgqjgqgqjgqgqjgqgqjgqgqo<cr>')
feed('<cr>')
feed('a<cr>')
feed(' a<cr>')
feed('<cr>')
feed(' <esc><esc>')
expect([[
{
a
a
a
a
}]])
end)
it('formatting with "set fo=tm" (part 2)', function()
insert([[
{
a
a
a
ab
abc
ab c
ab
}]])
execute('/^{/+1')
execute('set tw=2 fo=tm')
feed('gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo<cr>')
feed('<cr>')
feed('a<cr>')
feed(' a<cr>')
feed('<cr>')
feed(' <cr>')
feed('a<cr>')
feed('ab<cr>')
feed('abc<cr>')
feed('ab c<cr>')
feed('ab<esc><esc>')
expect([[
{
a
a
a
ab
abc
ab
c
ab
a
a
a
ab
abc
ab
c
ab
}]])
end)
it('formatting with "set ai fo=tm"', function()
insert([[
{
a
}]])
execute('/^{/+1')
execute('set ai tw=2 fo=tm')
feed('gqgqjgqgqo<cr>')
feed('<cr>')
feed('a<esc>')
expect([[
{
a
a
}]])
end)
it('formatting with "set ai fo=tm" (part 2)', function()
insert([[
{
a
}]])
execute('/^{/+1')
execute('set noai tw=2 fo=tm')
feed('gqgqjgqgqo<cr>')
-- Literal spaces will be trimmed from the by feed().
feed('<space><space><cr>')
feed('<space><space>a<esc>')
expect([[
{
a
a
}]])
end)
it('formatting with "set fo=cqm" and multi byte comments', function()
insert([[
{
a
a
a
}]])
execute('/^{/+1')
execute('set tw=2 fo=cqm comments=n:')
feed('gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo<cr>')
feed('<cr>')
feed('a<cr>')
feed('a<cr>')
feed('<cr>')
feed('<cr>')
feed(' <cr>')
feed(' <cr>')
feed('<cr>')
feed('a<cr>')
feed('<esc><esc>')
expect([[
{
a
a
a
a
a
a
}]])
end)
it('formatting in replace mode', function()
insert([[
{
}]])
execute('/^{/+1')
execute('set tw=2 fo=tm')
feed('Ra<esc>')
expect([[
{
a
}]])
end)
it("as values of 'mps'", function()
insert([[
{
two three four
}]])
execute('/^{/+1')
execute('set mps+=:')
feed('d%<cr>')
expect([[
{
four
}]])
end)
it('can be replaced with r', function()
insert([[
bb
b]])
feed('gg0Vjra<cr>')
expect([[
aaaa
aaa]])
end)
it("doesn't interfere with 'whichwrap'", function()
insert([[
á
x]])
execute('set whichwrap+=h')
execute('/^x')
feed('dh')
expect([[
áx]])
end)
it('can be querried with byteidx() and byteidxcomp()', function()
insert([[
byteidx
byteidxcomp]])
-- One char of two bytes.
execute("let a = '.é.'")
-- Normal e with composing char.
execute("let b = '.é.'")
execute('/^byteidx')
execute('put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), byteidx(a, 4)])')
execute('put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteidx(b, 4)])')
execute('/^byteidxcomp')
execute('put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcomp(a, 3), byteidxcomp(a, 4)])')
execute("let b = '.é.'")
execute('put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])')
expect([=[
byteidx
[0, 1, 3, 4, -1]
[0, 1, 4, 5, -1]
byteidxcomp
[0, 1, 3, 4, -1]
[0, 1, 2, 4, 5, -1]]=])
end)
it('correctly interact with the \zs pattern', function()
insert('substitute')
execute([[let y = substitute('', '\zs', 'a', 'g') | put =y]])
expect([[
substitute
aaaa]])
end)
end)