aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas Hoffmann <l-m-h@web.de>2015-07-09 15:38:56 +0200
committerLucas Hoffmann <l-m-h@web.de>2016-05-23 10:17:51 +0200
commit622a3ae8ea7e1761f31eaea99e22b5453a286c56 (patch)
tree6cfdb0dbbff99069d8207144019daec204a4442a
parent176f223ea3d1e8fb5716d5c2c0f09bead4864d59 (diff)
downloadrneovim-622a3ae8ea7e1761f31eaea99e22b5453a286c56.tar.gz
rneovim-622a3ae8ea7e1761f31eaea99e22b5453a286c56.tar.bz2
rneovim-622a3ae8ea7e1761f31eaea99e22b5453a286c56.zip
tests: Migrate legacy test 69.
-rw-r--r--src/nvim/testdir/Makefile1
-rw-r--r--src/nvim/testdir/test69.in191
-rw-r--r--src/nvim/testdir/test69.ok166
-rw-r--r--test/functional/legacy/069_multi_byte_formatting_spec.lua339
4 files changed, 339 insertions, 358 deletions
diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile
index 2fba6dd563..03e6d213df 100644
--- a/src/nvim/testdir/Makefile
+++ b/src/nvim/testdir/Makefile
@@ -28,7 +28,6 @@ SCRIPTS := \
test53.out \
test55.out \
test64.out \
- test69.out \
test73.out \
test79.out \
test_listlbr.out \
diff --git a/src/nvim/testdir/test69.in b/src/nvim/testdir/test69.in
deleted file mode 100644
index 39b360fc81..0000000000
--- a/src/nvim/testdir/test69.in
+++ /dev/null
@@ -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
-XYZ
-abc XYZ
-ENDTEST
-
-{
-XYZ
-abc XYZ
-}
-
-STARTTEST
-/^{/+1
-:set tw=1 fo=tm
-gqgqjgqgqjgqgqjgqgqjgqgqo
-X
-Xa
-X a
-XY
-X Y
-ENDTEST
-
-{
-X
-Xa
-X a
-XY
-X Y
-}
-
-STARTTEST
-/^{/+1
-:set tw=2 fo=tm
-gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
-X
-Xa
-X a
-XY
-X Y
-aX
-abX
-abcX
-abX c
-abXY
-ENDTEST
-
-{
-X
-Xa
-X a
-XY
-X Y
-aX
-abX
-abcX
-abX c
-abXY
-}
-
-STARTTEST
-/^{/+1
-:set ai tw=2 fo=tm
-gqgqjgqgqo
-X
-Xa
-ENDTEST
-
-{
- X
- Xa
-}
-
-STARTTEST
-/^{/+1
-:set noai tw=2 fo=tm
-gqgqjgqgqo
- X
- Xa
-ENDTEST
-
-{
- X
- Xa
-}
-
-STARTTEST
-/^{/+1
-:set tw=2 fo=cqm comments=n:X
-gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
-X
-Xa
-XaY
-XY
-XYZ
-X Y
-X YZ
-XX
-XXa
-XXY
-ENDTEST
-
-{
-X
-Xa
-XaY
-XY
-XYZ
-X Y
-X YZ
-XX
-XXa
-XXY
-}
-
-STARTTEST
-/^{/+1
-:set tw=2 fo=tm
-RXa
-ENDTEST
-
-{
-
-}
-
-STARTTEST
-/^{/+1
-:set mps+=u2018:u2019
-d%
-ENDTEST
-
-{
-‘ two three ’ four
-}
-STARTTEST
-/^ra test
-jVjra
-ENDTEST
-
-ra test
-abba
-aab
-
-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('123', '\zs', 'a', 'g') | put =y
-ENDTEST
-
-substitute
-
-STARTTEST
-:g/^STARTTEST/.,/^ENDTEST/d
-:1;/^Results/,$wq! test.out
-ENDTEST
diff --git a/src/nvim/testdir/test69.ok b/src/nvim/testdir/test69.ok
deleted file mode 100644
index af8befb0c7..0000000000
--- a/src/nvim/testdir/test69.ok
+++ /dev/null
@@ -1,166 +0,0 @@
-Results of test69:
-
-
-{
-XYZ
-abc
-XYZ
-
-XYZ
-abc
-XYZ
-}
-
-
-{
-X
-X
-a
-X
-a
-X
-Y
-X
-Y
-
-X
-X
-a
-X
-a
-X
-Y
-X
-Y
-}
-
-
-{
-X
-X
-a
-X
-a
-X
-Y
-X
-Y
-a
-X
-ab
-X
-abc
-X
-ab
-X
-c
-ab
-X
-Y
-
-X
-X
-a
-X
-a
-X
-Y
-X
-Y
-a
-X
-ab
-X
-abc
-X
-ab
-X
-c
-ab
-X
-Y
-}
-
-
-{
- X
- X
- a
-
- X
- X
- a
-}
-
-
-{
- X
- X
-a
-
- X
- X
-a
-}
-
-
-{
-X
-Xa
-Xa
-XY
-XY
-XY
-XZ
-X Y
-X Y
-X Z
-XX
-XXa
-XXY
-
-X
-Xa
-Xa
-XY
-XY
-XY
-XZ
-X Y
-X Y
-X Z
-XX
-XXa
-XXY
-}
-
-
-{
-X
-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
-a1a2a3a
-
diff --git a/test/functional/legacy/069_multi_byte_formatting_spec.lua b/test/functional/legacy/069_multi_byte_formatting_spec.lua
new file mode 100644
index 0000000000..5ca429a787
--- /dev/null
+++ b/test/functional/legacy/069_multi_byte_formatting_spec.lua
@@ -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([[
+ {
+ XYZ
+ abc XYZ
+ }]])
+ execute('/^{/+1')
+ execute('set tw=2 fo=t')
+ feed('gqgqjgqgqo<cr>')
+ feed('XYZ<cr>')
+ feed('abc XYZ<esc><esc>')
+ expect([[
+ {
+ XYZ
+ abc
+ XYZ
+
+ XYZ
+ abc
+ XYZ
+ }]])
+ end)
+
+ it('formatting with "set fo=tm"', function()
+ insert([[
+ {
+ X
+ Xa
+ X a
+ XY
+ X Y
+ }]])
+ execute('/^{/+1')
+ execute('set tw=1 fo=tm')
+ feed('gqgqjgqgqjgqgqjgqgqjgqgqo<cr>')
+ feed('X<cr>')
+ feed('Xa<cr>')
+ feed('X a<cr>')
+ feed('XY<cr>')
+ feed('X Y<esc><esc>')
+ expect([[
+ {
+ X
+ X
+ a
+ X
+ a
+ X
+ Y
+ X
+ Y
+
+ X
+ X
+ a
+ X
+ a
+ X
+ Y
+ X
+ Y
+ }]])
+ end)
+
+ it('formatting with "set fo=tm" (part 2)', function()
+ insert([[
+ {
+ X
+ Xa
+ X a
+ XY
+ X Y
+ aX
+ abX
+ abcX
+ abX c
+ abXY
+ }]])
+ execute('/^{/+1')
+ execute('set tw=2 fo=tm')
+ feed('gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo<cr>')
+ feed('X<cr>')
+ feed('Xa<cr>')
+ feed('X a<cr>')
+ feed('XY<cr>')
+ feed('X Y<cr>')
+ feed('aX<cr>')
+ feed('abX<cr>')
+ feed('abcX<cr>')
+ feed('abX c<cr>')
+ feed('abXY<esc><esc>')
+ expect([[
+ {
+ X
+ X
+ a
+ X
+ a
+ X
+ Y
+ X
+ Y
+ a
+ X
+ ab
+ X
+ abc
+ X
+ ab
+ X
+ c
+ ab
+ X
+ Y
+
+ X
+ X
+ a
+ X
+ a
+ X
+ Y
+ X
+ Y
+ a
+ X
+ ab
+ X
+ abc
+ X
+ ab
+ X
+ c
+ ab
+ X
+ Y
+ }]])
+ end)
+
+ it('formatting with "set ai fo=tm"', function()
+ insert([[
+ {
+ X
+ Xa
+ }]])
+ execute('/^{/+1')
+ execute('set ai tw=2 fo=tm')
+ feed('gqgqjgqgqo<cr>')
+ feed('X<cr>')
+ feed('Xa<esc>')
+ expect([[
+ {
+ X
+ X
+ a
+
+ X
+ X
+ a
+ }]])
+ end)
+
+ it('formatting with "set ai fo=tm" (part 2)', function()
+ insert([[
+ {
+ X
+ Xa
+ }]])
+ execute('/^{/+1')
+ execute('set noai tw=2 fo=tm')
+ feed('gqgqjgqgqo<cr>')
+ -- Literal spaces will be trimmed from the by feed().
+ feed('<space><space>X<cr>')
+ feed('<space><space>Xa<esc>')
+ expect([[
+ {
+ X
+ X
+ a
+
+ X
+ X
+ a
+ }]])
+ end)
+
+ it('formatting with "set fo=cqm" and multi byte comments', function()
+ insert([[
+ {
+ X
+ Xa
+ XaY
+ XY
+ XYZ
+ X Y
+ X YZ
+ XX
+ XXa
+ XXY
+ }]])
+ execute('/^{/+1')
+ execute('set tw=2 fo=cqm comments=n:X')
+ feed('gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo<cr>')
+ feed('X<cr>')
+ feed('Xa<cr>')
+ feed('XaY<cr>')
+ feed('XY<cr>')
+ feed('XYZ<cr>')
+ feed('X Y<cr>')
+ feed('X YZ<cr>')
+ feed('XX<cr>')
+ feed('XXa<cr>')
+ feed('XXY<esc><esc>')
+ expect([[
+ {
+ X
+ Xa
+ Xa
+ XY
+ XY
+ XY
+ XZ
+ X Y
+ X Y
+ X Z
+ XX
+ XXa
+ XXY
+
+ X
+ Xa
+ Xa
+ XY
+ XY
+ XY
+ XZ
+ X Y
+ X Y
+ X Z
+ XX
+ XXa
+ XXY
+ }]])
+ end)
+
+ it('formatting in replace mode', function()
+ insert([[
+ {
+
+ }]])
+ execute('/^{/+1')
+ execute('set tw=2 fo=tm')
+ feed('RXa<esc>')
+ expect([[
+ {
+ X
+ 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([[
+ abba
+ aab]])
+ 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('123', '\zs', 'a', 'g') | put =y]])
+ expect([[
+ substitute
+ a1a2a3a]])
+ end)
+end)