diff options
author | David Bürgin <676c7473@gmail.com> | 2015-03-22 23:27:01 +0100 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2015-04-05 22:14:10 -0400 |
commit | d41322fafb153720d7a5506f5022c46879afb2d1 (patch) | |
tree | 7ef9a9c6519a348479375979b48a1110055a1be1 /test/functional/legacy | |
parent | 7a5a85d2c4711dce3d0850af93d510eed46fe118 (diff) | |
download | rneovim-d41322fafb153720d7a5506f5022c46879afb2d1.tar.gz rneovim-d41322fafb153720d7a5506f5022c46879afb2d1.tar.bz2 rneovim-d41322fafb153720d7a5506f5022c46879afb2d1.zip |
tests: Migrate legacy tests 92 and 93 #2261
Diffstat (limited to 'test/functional/legacy')
-rw-r--r-- | test/functional/legacy/092_mksession_cursor_cols_utf8_spec.lua | 98 | ||||
-rw-r--r-- | test/functional/legacy/093_mksession_cursor_cols_latin1_spec.lua | 95 |
2 files changed, 193 insertions, 0 deletions
diff --git a/test/functional/legacy/092_mksession_cursor_cols_utf8_spec.lua b/test/functional/legacy/092_mksession_cursor_cols_utf8_spec.lua new file mode 100644 index 0000000000..e0cc39dc40 --- /dev/null +++ b/test/functional/legacy/092_mksession_cursor_cols_utf8_spec.lua @@ -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 + “c”1€ 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) diff --git a/test/functional/legacy/093_mksession_cursor_cols_latin1_spec.lua b/test/functional/legacy/093_mksession_cursor_cols_latin1_spec.lua new file mode 100644 index 0000000000..659e716721 --- /dev/null +++ b/test/functional/legacy/093_mksession_cursor_cols_latin1_spec.lua @@ -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 + a 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) |