diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/legacy/072_undo_file_spec.lua | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/test/functional/legacy/072_undo_file_spec.lua b/test/functional/legacy/072_undo_file_spec.lua new file mode 100644 index 0000000000..0e2cc6a84e --- /dev/null +++ b/test/functional/legacy/072_undo_file_spec.lua @@ -0,0 +1,101 @@ +-- Tests for undo file. +-- Since this script is sourced we need to explicitly break changes up in +-- undo-able pieces. Do that by setting 'undolevels'. + +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('72', function() + setup(clear) + + it('is working', function() + insert([[ + 1111 ----- + 2222 ----- + + 123456789]]) + + -- Test 'undofile': first a simple one-line change. + execute('set visualbell') + execute('set ul=100 undofile nomore') + execute('e! Xtestfile') + feed('ggdGithis is one line<esc>:set ul=100<cr>') + execute('s/one/ONE/') + execute('set ul=100') + execute('w') + execute('bwipe!') + execute('e Xtestfile') + feed('u:.w! test.out<cr>') + + -- Test 'undofile', change in original file fails check. + execute('set noundofile') + execute('e! Xtestfile') + execute('s/line/Line/') + execute('w') + execute('set undofile') + execute('bwipe!') + execute('e Xtestfile') + ---- TODO: this beeps. + feed('u:.w >>test.out<cr>') + + -- Test 'undofile', add 10 lines, delete 6 lines, undo 3. + execute('set undofile') + feed('ggdGione<cr>') + feed('two<cr>') + feed('three<cr>') + feed('four<cr>') + feed('five<cr>') + feed('six<cr>') + feed('seven<cr>') + feed('eight<cr>') + feed('nine<cr>') + feed('ten<esc>:set ul=100<cr>') + feed('3Gdd:set ul=100<cr>') + feed('dd:set ul=100<cr>') + feed('dd:set ul=100<cr>') + feed('dd:set ul=100<cr>') + feed('dd:set ul=100<cr>') + feed('dd:set ul=100<cr>') + execute('w') + execute('bwipe!') + execute('e Xtestfile') + feed('uuu:w >>test.out<cr>') + + -- Test that reading the undofiles when setting undofile works. + execute('set noundofile ul=0') + feed('i<cr>') + feed('<esc>u:e! Xtestfile<cr>') + execute('set undofile ul=100') + feed('uuuuuu:w >>test.out<cr>') + + ---- Open the output to see if it meets the expections + execute('e! test.out') + + -- Assert buffer contents. + expect([[ + this is one line + this is ONE Line + one + two + six + seven + eight + nine + ten + one + two + three + four + five + six + seven + eight + nine + ten]]) + end) + + teardown(function() + os.remove('.Xtestfile.un~') + end) +end) |