annotate src/testdir/test_undo.vim @ 31441:e572ff386670 v9.0.1053

patch 9.0.1053: default constructor arguments are not optional Commit: https://github.com/vim/vim/commit/65b0d1676814ee08fb58ef8d64dd342d1d883192 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Dec 13 18:43:22 2022 +0000 patch 9.0.1053: default constructor arguments are not optional Problem: Default constructor arguments are not optional. Solution: Use "= v:none" to make constructor arguments optional.
author Bram Moolenaar <Bram@vim.org>
date Tue, 13 Dec 2022 19:45:04 +0100
parents 627d4f236ac8
children 257ab4ee8e4a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Tests for the undo tree.
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2 " Since this script is sourced we need to explicitly break changes up in
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 " undo-able pieces. Do that by setting 'undolevels'.
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4 " Also tests :earlier and :later.
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5
31406
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
6 source check.vim
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
7 source screendump.vim
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
8
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 func Test_undotree()
12827
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
10 new
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
11
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
12 normal! Aabc
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 set ul=100
12827
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
14 let d = undotree()
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
15 call assert_equal(1, d.seq_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
16 call assert_equal(1, d.seq_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
17 call assert_equal(0, d.save_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
18 call assert_equal(0, d.save_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
19 call assert_equal(1, len(d.entries))
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
20 call assert_equal(1, d.entries[0].newhead)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
21 call assert_equal(1, d.entries[0].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
22 call assert_true(d.entries[0].time <= d.time_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
23
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
24 normal! Adef
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 set ul=100
12827
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
26 let d = undotree()
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
27 call assert_equal(2, d.seq_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
28 call assert_equal(2, d.seq_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
29 call assert_equal(0, d.save_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
30 call assert_equal(0, d.save_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
31 call assert_equal(2, len(d.entries))
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
32 call assert_equal(1, d.entries[0].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
33 call assert_equal(1, d.entries[1].newhead)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
34 call assert_equal(2, d.entries[1].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
35 call assert_true(d.entries[1].time <= d.time_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
36
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
37 undo
12827
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
38 set ul=100
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
39 let d = undotree()
12827
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
40 call assert_equal(2, d.seq_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
41 call assert_equal(1, d.seq_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
42 call assert_equal(0, d.save_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
43 call assert_equal(0, d.save_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
44 call assert_equal(2, len(d.entries))
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
45 call assert_equal(1, d.entries[0].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
46 call assert_equal(1, d.entries[1].curhead)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
47 call assert_equal(1, d.entries[1].newhead)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
48 call assert_equal(2, d.entries[1].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
49 call assert_true(d.entries[1].time == d.time_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
50
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
51 normal! Aghi
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
52 set ul=100
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
53 let d = undotree()
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
54 call assert_equal(3, d.seq_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
55 call assert_equal(3, d.seq_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
56 call assert_equal(0, d.save_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
57 call assert_equal(0, d.save_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
58 call assert_equal(2, len(d.entries))
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
59 call assert_equal(1, d.entries[0].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
60 call assert_equal(2, d.entries[1].alt[0].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
61 call assert_equal(1, d.entries[1].newhead)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
62 call assert_equal(3, d.entries[1].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
63 call assert_true(d.entries[1].time <= d.time_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
64
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
65 undo
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
66 set ul=100
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
67 let d = undotree()
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
68 call assert_equal(3, d.seq_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
69 call assert_equal(1, d.seq_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
70 call assert_equal(0, d.save_last)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
71 call assert_equal(0, d.save_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
72 call assert_equal(2, len(d.entries))
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
73 call assert_equal(1, d.entries[0].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
74 call assert_equal(2, d.entries[1].alt[0].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
75 call assert_equal(1, d.entries[1].curhead)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
76 call assert_equal(1, d.entries[1].newhead)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
77 call assert_equal(3, d.entries[1].seq)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
78 call assert_true(d.entries[1].time == d.time_cur)
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
79
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
80 w! Xtest
12827
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
81 let d = undotree()
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
82 call assert_equal(1, d.save_cur)
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
83 call assert_equal(1, d.save_last)
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
84 call delete('Xtest')
12827
ff494a964ab7 patch 8.0.1290: seq_cur of undotree() wrong after undo
Christian Brabandt <cb@256bit.org>
parents: 12779
diff changeset
85 bwipe! Xtest
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
86 endfunc
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
87
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
88 func FillBuffer()
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
89 for i in range(1,13)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
90 put=i
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
91 " Set 'undolevels' to split undo.
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
92 exe "setg ul=" . &g:ul
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
93 endfor
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
94 endfunc
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
95
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
96 func Test_global_local_undolevels()
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
97 new one
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
98 set undolevels=5
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
99 call FillBuffer()
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
100 " will only undo the last 5 changes, end up with 13 - (5 + 1) = 7 lines
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
101 earlier 10
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
102 call assert_equal(5, &g:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
103 call assert_equal(-123456, &l:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
104 call assert_equal('7', getline('$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
105
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
106 new two
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
107 setlocal undolevels=2
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
108 call FillBuffer()
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
109 " will only undo the last 2 changes, end up with 13 - (2 + 1) = 10 lines
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
110 earlier 10
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
111 call assert_equal(5, &g:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
112 call assert_equal(2, &l:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
113 call assert_equal('10', getline('$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
114
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
115 setlocal ul=10
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
116 call assert_equal(5, &g:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
117 call assert_equal(10, &l:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
118
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
119 " Setting local value in "two" must not change local value in "one"
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
120 wincmd p
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
121 call assert_equal(5, &g:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
122 call assert_equal(-123456, &l:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
123
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
124 new three
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
125 setglobal ul=50
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
126 call assert_equal(50, &g:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
127 call assert_equal(-123456, &l:undolevels)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
128
19991
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
129 " Resetting the local 'undolevels' value to use the global value
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
130 setlocal undolevels=5
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
131 setlocal undolevels<
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
132 call assert_equal(-123456, &l:undolevels)
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
133
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
134 " Drop created windows
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
135 set ul&
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
136 new
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
137 only!
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
138 endfunc
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
139
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
140 func BackOne(expected)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
141 call feedkeys('g-', 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
142 call assert_equal(a:expected, getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
143 endfunc
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
144
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
145 func Test_undo_del_chars()
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
146 " Setup a buffer without creating undo entries
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
147 new
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
148 set ul=-1
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
149 call setline(1, ['123-456'])
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
150 set ul=100
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
151 1
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
152 call test_settime(100)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
153
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
154 " Delete three characters and undo with g-
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
155 call feedkeys('x', 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
156 call feedkeys('x', 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
157 call feedkeys('x', 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
158 call assert_equal('-456', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
159 call BackOne('3-456')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
160 call BackOne('23-456')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
161 call BackOne('123-456')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
162 call assert_fails("BackOne('123-456')")
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
163
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
164 :" Delete three other characters and go back in time with g-
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
165 call feedkeys('$x', 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
166 call feedkeys('x', 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
167 call feedkeys('x', 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
168 call assert_equal('123-', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
169 call test_settime(101)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
170
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
171 call BackOne('123-4')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
172 call BackOne('123-45')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
173 " skips '123-456' because it's older
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
174 call BackOne('-456')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
175 call BackOne('3-456')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
176 call BackOne('23-456')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
177 call BackOne('123-456')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
178 call assert_fails("BackOne('123-456')")
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
179 normal 10g+
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
180 call assert_equal('123-', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
181
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
182 :" Jump two seconds and go some seconds forward and backward
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
183 call test_settime(103)
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
184 call feedkeys("Aa\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
185 call feedkeys("Ab\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
186 call feedkeys("Ac\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
187 call assert_equal('123-abc', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
188 earlier 1s
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
189 call assert_equal('123-', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
190 earlier 3s
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
191 call assert_equal('123-456', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
192 later 1s
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
193 call assert_equal('123-', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
194 later 1h
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
195 call assert_equal('123-abc', getline(1))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
196
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
197 close!
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
198 endfunc
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
199
10049
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
200 func Test_undolist()
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
201 new
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
202 set ul=100
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
203
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
204 let a = execute('undolist')
10049
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
205 call assert_equal("\nNothing to undo", a)
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
206
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
207 " 1 leaf (2 changes).
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
208 call feedkeys('achange1', 'xt')
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
209 call feedkeys('achange2', 'xt')
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
210 let a = execute('undolist')
10049
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
211 call assert_match("^\nnumber changes when *saved\n *2 *2 .*$", a)
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
212
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
213 " 2 leaves.
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
214 call feedkeys('u', 'xt')
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
215 call feedkeys('achange3\<Esc>', 'xt')
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
216 let a = execute('undolist')
10049
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
217 call assert_match("^\nnumber changes when *saved\n *2 *2 *.*\n *3 *2 .*$", a)
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
218 close!
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
219 endfunc
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
220
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
221 func Test_U_command()
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
222 new
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
223 set ul=100
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
224 call feedkeys("achange1\<Esc>", 'xt')
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
225 call feedkeys("achange2\<Esc>", 'xt')
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
226 norm! U
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
227 call assert_equal('', getline(1))
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
228 norm! U
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
229 call assert_equal('change1change2', getline(1))
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
230 close!
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
231 endfunc
efc8a434f38f commit https://github.com/vim/vim/commit/c628fdcd46e93c308f742efdf54248695960e290
Christian Brabandt <cb@256bit.org>
parents: 9674
diff changeset
232
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
233 func Test_undojoin()
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
234 new
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
235 call feedkeys("Goaaaa\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
236 call feedkeys("obbbb\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
237 call assert_equal(['aaaa', 'bbbb'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
238 call feedkeys("u", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
239 call assert_equal(['aaaa'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
240 call feedkeys("obbbb\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
241 undojoin
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
242 " Note: next change must not be as if typed
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
243 call feedkeys("occcc\<Esc>", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
244 call assert_equal(['aaaa', 'bbbb', 'cccc'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
245 call feedkeys("u", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
246 call assert_equal(['aaaa'], getline(2, '$'))
10631
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
247 bwipe!
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
248 endfunc
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
249
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
250 func Test_undojoin_redo()
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
251 new
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
252 call setline(1, ['first line', 'second line'])
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
253 call feedkeys("ixx\<Esc>", 'xt')
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
254 call feedkeys(":undojoin | redo\<CR>", 'xt')
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
255 call assert_equal('xxfirst line', getline(1))
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
256 call assert_equal('second line', getline(2))
cbf17371627c patch 8.0.0205: wrong behavior after :undojoin
Christian Brabandt <cb@256bit.org>
parents: 10518
diff changeset
257 bwipe!
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
258 endfunc
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
259
18902
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
260 " undojoin not allowed after undo
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
261 func Test_undojoin_after_undo()
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
262 new
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
263 call feedkeys("ixx\<Esc>u", 'xt')
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
264 call assert_fails(':undojoin', 'E790:')
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
265 bwipe!
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
266 endfunc
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
267
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
268 " undojoin is a noop when no change yet, or when 'undolevels' is negative
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
269 func Test_undojoin_noop()
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
270 new
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
271 call feedkeys(":undojoin\<CR>", 'xt')
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
272 call assert_equal([''], getline(1, '$'))
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
273 setlocal undolevels=-1
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
274 call feedkeys("ixx\<Esc>u", 'xt')
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
275 call feedkeys(":undojoin\<CR>", 'xt')
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
276 call assert_equal(['xx'], getline(1, '$'))
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
277 bwipe!
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
278 endfunc
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
279
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
280 func Test_undo_write()
12779
73eb8a2d7f04 patch 8.0.1267: Test_swap_group may leave file behind
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
281 call delete('Xtest')
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
282 split Xtest
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
283 call feedkeys("ione one one\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
284 w!
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
285 call feedkeys("otwo\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
286 call feedkeys("otwo\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
287 w
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
288 call feedkeys("othree\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
289 call assert_equal(['one one one', 'two', 'two', 'three'], getline(1, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
290 earlier 1f
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
291 call assert_equal(['one one one', 'two', 'two'], getline(1, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
292 earlier 1f
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
293 call assert_equal(['one one one'], getline(1, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
294 earlier 1f
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
295 call assert_equal([''], getline(1, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
296 later 1f
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
297 call assert_equal(['one one one'], getline(1, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
298 later 1f
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
299 call assert_equal(['one one one', 'two', 'two'], getline(1, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
300 later 1f
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
301 call assert_equal(['one one one', 'two', 'two', 'three'], getline(1, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
302
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
303 close!
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
304 call delete('Xtest')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
305 bwipe! Xtest
19370
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 18902
diff changeset
306
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 18902
diff changeset
307 call assert_fails('earlier xyz', 'E475:')
9674
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
308 endfunc
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
309
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
310 func Test_insert_expr()
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
311 new
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
312 " calling setline() triggers undo sync
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
313 call feedkeys("oa\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
314 call feedkeys("ob\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
315 set ul=100
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
316 call feedkeys("o1\<Esc>a2\<C-R>=setline('.','1234')\<CR>\<CR>\<Esc>", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
317 call assert_equal(['a', 'b', '120', '34'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
318 call feedkeys("u", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
319 call assert_equal(['a', 'b', '12'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
320 call feedkeys("u", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
321 call assert_equal(['a', 'b'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
322
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
323 call feedkeys("oc\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
324 set ul=100
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
325 call feedkeys("o1\<Esc>a2\<C-R>=setline('.','1234')\<CR>\<CR>\<Esc>", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
326 call assert_equal(['a', 'b', 'c', '120', '34'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
327 call feedkeys("u", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
328 call assert_equal(['a', 'b', 'c', '12'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
329
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
330 call feedkeys("od\<Esc>", 'xt')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
331 set ul=100
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
332 call feedkeys("o1\<Esc>a2\<C-R>=string(123)\<CR>\<Esc>", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
333 call assert_equal(['a', 'b', 'c', '12', 'd', '12123'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
334 call feedkeys("u", 'x')
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
335 call assert_equal(['a', 'b', 'c', '12', 'd'], getline(2, '$'))
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
336
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
337 close!
adc7212951ee commit https://github.com/vim/vim/commit/170b10b421f0c9fda08b7cfd3bb043c064f3659a
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
338 endfunc
10518
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
339
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
340 func Test_undofile_earlier()
30158
008808e60963 patch 9.0.0415: on MS-Windows some tests are flaky
Bram Moolenaar <Bram@vim.org>
parents: 29752
diff changeset
341 if has('win32')
008808e60963 patch 9.0.0415: on MS-Windows some tests are flaky
Bram Moolenaar <Bram@vim.org>
parents: 29752
diff changeset
342 " FIXME: This test is flaky on MS-Windows.
008808e60963 patch 9.0.0415: on MS-Windows some tests are flaky
Bram Moolenaar <Bram@vim.org>
parents: 29752
diff changeset
343 let g:test_is_flaky = 1
008808e60963 patch 9.0.0415: on MS-Windows some tests are flaky
Bram Moolenaar <Bram@vim.org>
parents: 29752
diff changeset
344 endif
008808e60963 patch 9.0.0415: on MS-Windows some tests are flaky
Bram Moolenaar <Bram@vim.org>
parents: 29752
diff changeset
345
10518
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
346 " Issue #1254
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
347 " create undofile with timestamps older than Vim startup time.
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
348 let t0 = localtime() - 43200
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
349 call test_settime(t0)
29752
b01151812350 patch 9.0.0216: undo earlier test sometimes fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 28835
diff changeset
350 new XfileEarlier
10518
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
351 call feedkeys("ione\<Esc>", 'xt')
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
352 set ul=100
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
353 call test_settime(t0 + 1)
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
354 call feedkeys("otwo\<Esc>", 'xt')
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
355 set ul=100
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
356 call test_settime(t0 + 2)
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
357 call feedkeys("othree\<Esc>", 'xt')
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
358 set ul=100
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
359 w
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
360 wundo Xundofile
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
361 bwipe!
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
362 " restore normal timestamps.
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
363 call test_settime(0)
29752
b01151812350 patch 9.0.0216: undo earlier test sometimes fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 28835
diff changeset
364 new XfileEarlier
10518
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
365 rundo Xundofile
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
366 earlier 1d
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
367 call assert_equal('', getline(1))
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
368 bwipe!
29752
b01151812350 patch 9.0.0216: undo earlier test sometimes fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 28835
diff changeset
369 call delete('XfileEarlier')
10518
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
370 call delete('Xundofile')
de77fa909414 commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Christian Brabandt <cb@256bit.org>
parents: 10049
diff changeset
371 endfunc
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
372
18902
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
373 func Test_wundo_errors()
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
374 new
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
375 call setline(1, 'hello')
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
376 call assert_fails('wundo! Xdoesnotexist/Xundofile', 'E828:')
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
377 bwipe!
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
378 endfunc
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
379
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
380 " Check that reading a truncated undo file doesn't hang.
17630
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
381 func Test_undofile_truncated()
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
382 new
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
383 call setline(1, 'hello')
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
384 set ul=100
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
385 wundo Xundofile
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
386 let contents = readfile('Xundofile', 'B')
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
387
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
388 " try several sizes
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
389 for size in range(20, 500, 33)
30867
0913cd44fdfa patch 9.0.0768: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30158
diff changeset
390 call writefile(contents[0:size], 'Xundofile', 'D')
17630
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
391 call assert_fails('rundo Xundofile', 'E825:')
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
392 endfor
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
393
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
394 bwipe!
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
395 endfunc
380adf86bf66 patch 8.1.1812: reading a truncted undo file hangs Vim
Bram Moolenaar <Bram@vim.org>
parents: 16702
diff changeset
396
18902
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
397 func Test_rundo_errors()
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
398 call assert_fails('rundo XfileDoesNotExist', 'E822:')
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
399
30867
0913cd44fdfa patch 9.0.0768: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30158
diff changeset
400 call writefile(['abc'], 'Xundofile', 'D')
18902
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
401 call assert_fails('rundo Xundofile', 'E823:')
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
402 endfunc
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
403
22506
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
404 func Test_undofile_next()
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
405 set undofile
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
406 new Xfoo.txt
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
407 execute "norm ix\<c-g>uy\<c-g>uz\<Esc>"
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
408 write
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
409 bwipe
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
410
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
411 next Xfoo.txt
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
412 call assert_equal('xyz', getline(1))
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
413 silent undo
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
414 call assert_equal('xy', getline(1))
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
415 silent undo
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
416 call assert_equal('x', getline(1))
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
417 bwipe!
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
418
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
419 call delete('Xfoo.txt')
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
420 call delete('.Xfoo.txt.un~')
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
421 set undofile&
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
422 endfunc
a6fe2e1ad5b0 patch 8.2.1801: undo file not found when using ":args" or ":next"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
423
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
424 " Test for undo working properly when executing commands from a register.
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
425 " Also test this in an empty buffer.
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
426 func Test_cmd_in_reg_undo()
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
427 enew!
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
428 let @a = "Ox\<Esc>jAy\<Esc>kdd"
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
429 edit +/^$ test_undo.vim
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
430 normal @au
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
431 call assert_equal(0, &modified)
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
432 return
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
433 new
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
434 normal @au
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
435 call assert_equal(0, &modified)
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
436 only!
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
437 let @a = ''
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
438 endfunc
13117
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
439
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
440 " This used to cause an illegal memory access
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
441 func Test_undo_append()
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
442 new
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
443 call feedkeys("axx\<Esc>v", 'xt')
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
444 undo
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
445 norm o
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
446 quit
cfaa513efa3f patch 8.0.1433: illegal memory access after undo
Christian Brabandt <cb@256bit.org>
parents: 12827
diff changeset
447 endfunc
13134
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
448
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
449 func Test_undo_0()
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
450 new
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
451 set ul=100
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
452 normal i1
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
453 undo
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
454 normal i2
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
455 undo
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
456 normal i3
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
457
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
458 undo 0
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
459 let d = undotree()
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
460 call assert_equal('', getline(1))
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
461 call assert_equal(0, d.seq_cur)
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
462
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
463 redo
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
464 let d = undotree()
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
465 call assert_equal('3', getline(1))
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
466 call assert_equal(3, d.seq_cur)
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
467
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
468 undo 2
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
469 undo 0
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
470 let d = undotree()
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
471 call assert_equal('', getline(1))
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
472 call assert_equal(0, d.seq_cur)
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
473
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
474 redo
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
475 let d = undotree()
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
476 call assert_equal('2', getline(1))
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
477 call assert_equal(2, d.seq_cur)
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
478
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
479 undo 1
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
480 undo 0
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
481 let d = undotree()
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
482 call assert_equal('', getline(1))
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
483 call assert_equal(0, d.seq_cur)
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
484
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
485 redo
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
486 let d = undotree()
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
487 call assert_equal('1', getline(1))
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
488 call assert_equal(1, d.seq_cur)
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
489
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
490 bwipe!
c4b5ad2b3596 patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Christian Brabandt <cb@256bit.org>
parents: 13117
diff changeset
491 endfunc
13202
2941a86f8aaa patch 8.0.1475: invalid memory access in read_redo()
Christian Brabandt <cb@256bit.org>
parents: 13134
diff changeset
492
18902
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
493 " undo or redo are noop if there is nothing to undo or redo
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
494 func Test_undo_redo_noop()
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
495 new
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
496 call assert_fails('undo 2', 'E830:')
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
497
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
498 message clear
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
499 undo
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
500 let messages = split(execute('message'), "\n")
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
501 call assert_equal('Already at oldest change', messages[-1])
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
502
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
503 message clear
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
504 redo
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
505 let messages = split(execute('message'), "\n")
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
506 call assert_equal('Already at newest change', messages[-1])
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
507
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
508 bwipe!
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
509 endfunc
b24648ebcbc9 patch 8.2.0012: some undo functionality is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18894
diff changeset
510
13202
2941a86f8aaa patch 8.0.1475: invalid memory access in read_redo()
Christian Brabandt <cb@256bit.org>
parents: 13134
diff changeset
511 func Test_redo_empty_line()
2941a86f8aaa patch 8.0.1475: invalid memory access in read_redo()
Christian Brabandt <cb@256bit.org>
parents: 13134
diff changeset
512 new
2941a86f8aaa patch 8.0.1475: invalid memory access in read_redo()
Christian Brabandt <cb@256bit.org>
parents: 13134
diff changeset
513 exe "norm\x16r\x160"
2941a86f8aaa patch 8.0.1475: invalid memory access in read_redo()
Christian Brabandt <cb@256bit.org>
parents: 13134
diff changeset
514 exe "norm."
2941a86f8aaa patch 8.0.1475: invalid memory access in read_redo()
Christian Brabandt <cb@256bit.org>
parents: 13134
diff changeset
515 bwipe!
2941a86f8aaa patch 8.0.1475: invalid memory access in read_redo()
Christian Brabandt <cb@256bit.org>
parents: 13134
diff changeset
516 endfunc
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
517
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
518 funct Test_undofile()
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
519 " Test undofile() without setting 'undodir'.
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
520 if has('persistent_undo')
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
521 call assert_equal(fnamemodify('.Xundofoo.un~', ':p'), undofile('Xundofoo'))
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
522 else
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
523 call assert_equal('', undofile('Xundofoo'))
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
524 endif
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
525 call assert_equal('', undofile(''))
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
526
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
527 " Test undofile() with 'undodir' set to to an existing directory.
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
528 call mkdir('Xundodir')
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
529 set undodir=Xundodir
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
530 let cwd = getcwd()
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
531 if has('win32')
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
532 " Replace windows drive such as C:... into C%...
15150
83a366325158 patch 8.1.0585: undo test may fail on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 14015
diff changeset
533 let cwd = substitute(cwd, '^\([a-zA-Z]\):', '\1%', 'g')
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
534 endif
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
535 let cwd = substitute(cwd . '/Xundofoo', '/', '%', 'g')
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
536 if has('persistent_undo')
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
537 call assert_equal('Xundodir/' . cwd, undofile('Xundofoo'))
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
538 else
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
539 call assert_equal('', undofile('Xundofoo'))
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
540 endif
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
541 call assert_equal('', undofile(''))
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
542 call delete('Xundodir', 'd')
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
543
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
544 " Test undofile() with 'undodir' set to a non-existing directory.
18035
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17630
diff changeset
545 call assert_equal('', 'Xundofoo'->undofile())
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
546
18473
0eeaa9a6e4e7 patch 8.1.2230: MS-Windows: testing external commands can be improved
Bram Moolenaar <Bram@vim.org>
parents: 18058
diff changeset
547 if !has('win32') && isdirectory('/tmp')
16700
46322a4e6028 patch 8.1.1352: undofile() reports wrong name
Bram Moolenaar <Bram@vim.org>
parents: 15150
diff changeset
548 set undodir=/tmp
16702
16a698aeeec1 patch 8.1.1353: undo test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents: 16700
diff changeset
549 if has('osx')
16a698aeeec1 patch 8.1.1353: undo test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents: 16700
diff changeset
550 call assert_equal('/tmp/%private%tmp%file', undofile('///tmp/file'))
16a698aeeec1 patch 8.1.1353: undo test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents: 16700
diff changeset
551 else
16a698aeeec1 patch 8.1.1353: undo test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents: 16700
diff changeset
552 call assert_equal('/tmp/%tmp%file', undofile('///tmp/file'))
16a698aeeec1 patch 8.1.1353: undo test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents: 16700
diff changeset
553 endif
16700
46322a4e6028 patch 8.1.1352: undofile() reports wrong name
Bram Moolenaar <Bram@vim.org>
parents: 15150
diff changeset
554 endif
46322a4e6028 patch 8.1.1352: undofile() reports wrong name
Bram Moolenaar <Bram@vim.org>
parents: 15150
diff changeset
555
14015
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
556 set undodir&
9709d783261f patch 8.1.0025: no test for the undofile() function
Christian Brabandt <cb@256bit.org>
parents: 13202
diff changeset
557 endfunc
18894
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
558
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
559 " Tests for the undo file
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
560 " Explicitly break changes up in undo-able pieces by setting 'undolevels'.
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
561 func Test_undofile_2()
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
562 set undolevels=100 undofile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
563 edit Xtestfile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
564 call append(0, 'this is one line')
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
565 call cursor(1, 1)
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
566
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
567 " first a simple one-line change.
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
568 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
569 s/one/ONE/
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
570 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
571 write
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
572 bwipe!
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
573 edit Xtestfile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
574 undo
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
575 call assert_equal('this is one line', getline(1))
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
576
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
577 " change in original file fails check
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
578 set noundofile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
579 edit! Xtestfile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
580 s/line/Line/
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
581 write
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
582 set undofile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
583 bwipe!
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
584 edit Xtestfile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
585 undo
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
586 call assert_equal('this is ONE Line', getline(1))
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
587
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
588 " add 10 lines, delete 6 lines, undo 3
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
589 set undofile
25654
ef38fc02faaa patch 8.2.3363: when :edit reuses the current buffer the alternate file is set
Bram Moolenaar <Bram@vim.org>
parents: 24204
diff changeset
590 call setbufline('%', 1, ['one', 'two', 'three', 'four', 'five', 'six',
18894
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
591 \ 'seven', 'eight', 'nine', 'ten'])
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
592 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
593 normal 3Gdd
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
594 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
595 normal dd
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
596 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
597 normal dd
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
598 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
599 normal dd
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
600 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
601 normal dd
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
602 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
603 normal dd
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
604 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
605 write
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
606 bwipe!
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
607 edit Xtestfile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
608 normal uuu
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
609 call assert_equal(['one', 'two', 'six', 'seven', 'eight', 'nine', 'ten'],
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
610 \ getline(1, '$'))
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
611
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
612 " Test that reading the undofiles when setting undofile works
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
613 set noundofile undolevels=0
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
614 exe "normal i\n"
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
615 undo
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
616 edit! Xtestfile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
617 set undofile undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
618 normal uuuuuu
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
619 call assert_equal(['one', 'two', 'three', 'four', 'five', 'six', 'seven',
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
620 \ 'eight', 'nine', 'ten'], getline(1, '$'))
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
621
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
622 bwipe!
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
623 call delete('Xtestfile')
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
624 let ufile = has('vms') ? '_un_Xtestfile' : '.Xtestfile.un~'
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
625 call delete(ufile)
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
626 set undofile& undolevels&
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
627 endfunc
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
628
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
629 " Test 'undofile' using a file encrypted with 'zip' crypt method
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
630 func Test_undofile_cryptmethod_zip()
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
631 edit Xtestfile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
632 set undofile cryptmethod=zip
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
633 call append(0, ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'])
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
634 call cursor(5, 1)
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
635
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
636 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
637 normal kkkdd
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
638 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
639 normal dd
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
640 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
641 normal dd
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
642 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
643 " encrypt the file using key 'foobar'
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
644 call feedkeys("foobar\nfoobar\n")
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
645 X
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
646 write!
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
647 bwipe!
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
648
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
649 call feedkeys("foobar\n")
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
650 edit Xtestfile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
651 set key=
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
652 normal uu
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
653 call assert_equal(['monday', 'wednesday', 'thursday', 'friday', ''],
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
654 \ getline(1, '$'))
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
655
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
656 bwipe!
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
657 call delete('Xtestfile')
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
658 let ufile = has('vms') ? '_un_Xtestfile' : '.Xtestfile.un~'
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
659 call delete(ufile)
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
660 set undofile& undolevels& cryptmethod&
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
661 endfunc
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
662
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
663 " Test 'undofile' using a file encrypted with 'blowfish' crypt method
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
664 func Test_undofile_cryptmethod_blowfish()
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
665 edit Xtestfile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
666 set undofile cryptmethod=blowfish
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
667 call append(0, ['jan', 'feb', 'mar', 'apr', 'jun'])
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
668 call cursor(5, 1)
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
669
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
670 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
671 exe 'normal kk0ifoo '
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
672 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
673 normal dd
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
674 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
675 exe 'normal ibar '
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
676 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
677 " encrypt the file using key 'foobar'
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
678 call feedkeys("foobar\nfoobar\n")
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
679 X
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
680 write!
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
681 bwipe!
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
682
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
683 call feedkeys("foobar\n")
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
684 edit Xtestfile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
685 set key=
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
686 call search('bar')
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
687 call assert_equal('bar apr', getline('.'))
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
688 undo
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
689 call assert_equal('apr', getline('.'))
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
690 undo
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
691 call assert_equal('foo mar', getline('.'))
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
692 undo
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
693 call assert_equal('mar', getline('.'))
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
694
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
695 bwipe!
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
696 call delete('Xtestfile')
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
697 let ufile = has('vms') ? '_un_Xtestfile' : '.Xtestfile.un~'
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
698 call delete(ufile)
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
699 set undofile& undolevels& cryptmethod&
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
700 endfunc
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
701
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
702 " Test 'undofile' using a file encrypted with 'blowfish2' crypt method
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
703 func Test_undofile_cryptmethod_blowfish2()
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
704 edit Xtestfile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
705 set undofile cryptmethod=blowfish2
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
706 call append(0, ['jan', 'feb', 'mar', 'apr', 'jun'])
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
707 call cursor(5, 1)
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
708
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
709 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
710 exe 'normal kk0ifoo '
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
711 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
712 normal dd
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
713 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
714 exe 'normal ibar '
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
715 set undolevels=100
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
716 " encrypt the file using key 'foo2bar'
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
717 call feedkeys("foo2bar\nfoo2bar\n")
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
718 X
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
719 write!
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
720 bwipe!
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
721
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
722 call feedkeys("foo2bar\n")
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
723 edit Xtestfile
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
724 set key=
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
725 call search('bar')
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
726 call assert_equal('bar apr', getline('.'))
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
727 normal u
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
728 call assert_equal('apr', getline('.'))
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
729 normal u
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
730 call assert_equal('foo mar', getline('.'))
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
731 normal u
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
732 call assert_equal('mar', getline('.'))
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
733
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
734 bwipe!
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
735 call delete('Xtestfile')
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
736 let ufile = has('vms') ? '_un_Xtestfile' : '.Xtestfile.un~'
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
737 call delete(ufile)
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
738 set undofile& undolevels& cryptmethod&
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
739 endfunc
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
740
24134
72e9b861bc92 patch 8.2.2608: character input not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22506
diff changeset
741 " Test for redoing with incrementing numbered registers
72e9b861bc92 patch 8.2.2608: character input not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22506
diff changeset
742 func Test_redo_repeat_numbered_register()
72e9b861bc92 patch 8.2.2608: character input not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22506
diff changeset
743 new
72e9b861bc92 patch 8.2.2608: character input not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22506
diff changeset
744 for [i, v] in [[1, 'one'], [2, 'two'], [3, 'three'],
72e9b861bc92 patch 8.2.2608: character input not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22506
diff changeset
745 \ [4, 'four'], [5, 'five'], [6, 'six'],
72e9b861bc92 patch 8.2.2608: character input not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22506
diff changeset
746 \ [7, 'seven'], [8, 'eight'], [9, 'nine']]
72e9b861bc92 patch 8.2.2608: character input not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22506
diff changeset
747 exe 'let @' .. i .. '="' .. v .. '\n"'
72e9b861bc92 patch 8.2.2608: character input not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22506
diff changeset
748 endfor
72e9b861bc92 patch 8.2.2608: character input not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22506
diff changeset
749 call feedkeys('"1p.........', 'xt')
72e9b861bc92 patch 8.2.2608: character input not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22506
diff changeset
750 call assert_equal(['', 'one', 'two', 'three', 'four', 'five', 'six',
72e9b861bc92 patch 8.2.2608: character input not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22506
diff changeset
751 \ 'seven', 'eight', 'nine', 'nine'], getline(1, '$'))
72e9b861bc92 patch 8.2.2608: character input not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22506
diff changeset
752 bwipe!
72e9b861bc92 patch 8.2.2608: character input not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22506
diff changeset
753 endfunc
72e9b861bc92 patch 8.2.2608: character input not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22506
diff changeset
754
24204
ec71c859e94c patch 8.2.2643: various code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24134
diff changeset
755 " Test for redo in insert mode using CTRL-O with multibyte characters
ec71c859e94c patch 8.2.2643: various code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24134
diff changeset
756 func Test_redo_multibyte_in_insert_mode()
ec71c859e94c patch 8.2.2643: various code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24134
diff changeset
757 new
ec71c859e94c patch 8.2.2643: various code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24134
diff changeset
758 call feedkeys("a\<C-K>ft", 'xt')
ec71c859e94c patch 8.2.2643: various code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24134
diff changeset
759 call feedkeys("uiHe\<C-O>.llo", 'xt')
ec71c859e94c patch 8.2.2643: various code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24134
diff changeset
760 call assert_equal("He\ufb05llo", getline(1))
ec71c859e94c patch 8.2.2643: various code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24134
diff changeset
761 bwipe!
ec71c859e94c patch 8.2.2643: various code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24134
diff changeset
762 endfunc
ec71c859e94c patch 8.2.2643: various code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24134
diff changeset
763
28835
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
764 func Test_undo_mark()
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
765 new
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
766 " The undo is applied to the only line.
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
767 call setline(1, 'hello')
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
768 call feedkeys("ggyiw$p", 'xt')
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
769 undo
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
770 call assert_equal([0, 1, 1, 0], getpos("'["))
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
771 call assert_equal([0, 1, 1, 0], getpos("']"))
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
772 " The undo removes the last line.
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
773 call feedkeys("Goaaaa\<Esc>", 'xt')
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
774 call feedkeys("obbbb\<Esc>", 'xt')
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
775 undo
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
776 call assert_equal([0, 2, 1, 0], getpos("'["))
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
777 call assert_equal([0, 2, 1, 0], getpos("']"))
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
778 bwipe!
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
779 endfunc
58d2315b096e patch 8.2.4941: '[ and '] marks may be wrong after undo
Bram Moolenaar <Bram@vim.org>
parents: 25654
diff changeset
780
31406
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
781 func Test_undo_after_write()
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
782 " use a terminal to make undo work like when text is typed
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
783 CheckRunVimInTerminal
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
784
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
785 let lines =<< trim END
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
786 edit Xtestfile.txt
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
787 set undolevels=100 undofile
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
788 imap . <Cmd>write<CR>
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
789 write
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
790 END
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
791 call writefile(lines, 'Xtest_undo_after_write', 'D')
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
792 let buf = RunVimInTerminal('-S Xtest_undo_after_write', #{rows: 6})
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
793
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
794 call term_sendkeys(buf, "Otest.\<CR>boo!!!\<Esc>")
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
795 sleep 100m
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
796 call term_sendkeys(buf, "u")
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
797 call VerifyScreenDump(buf, 'Test_undo_after_write_1', {})
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
798
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
799 call term_sendkeys(buf, "u")
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
800 call VerifyScreenDump(buf, 'Test_undo_after_write_2', {})
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
801
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
802 call StopVimInTerminal(buf)
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
803 call delete('Xtestfile.txt')
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
804 endfunc
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
805
627d4f236ac8 patch 9.0.1036: undo misbehaves when writing from an insert mode mapping
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
806
18894
aad0d64cc133 patch 8.2.0008: test72 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18473
diff changeset
807 " vim: shiftwidth=2 sts=2 expandtab