annotate src/testdir/test_tabpage.vim @ 33776:9503dc55b5ed v9.0.2108

patch 9.0.2108: [security]: overflow with count for :s command Commit: https://github.com/vim/vim/commit/ac63787734fda2e294e477af52b3bd601517fa78 Author: Christian Brabandt <cb@256bit.org> Date: Tue Nov 14 20:45:48 2023 +0100 patch 9.0.2108: [security]: overflow with count for :s command Problem: [security]: overflow with count for :s command Solution: Abort the :s command if the count is too large If the count after the :s command is larger than what fits into a (signed) long variable, abort with e_value_too_large. Adds a test with INT_MAX as count and verify it correctly fails. It seems the return value on Windows using mingw compiler wraps around, so the initial test using :s/./b/9999999999999999999999999990 doesn't fail there, since the count is wrapping around several times and finally is no longer larger than 2147483647. So let's just use 2147483647 in the test, which hopefully will always cause a failure Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Thu, 16 Nov 2023 22:15:10 +0100
parents e47739c49487
children f4d88db48a63
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9906
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Tests for tabpage
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
16477
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
3 source screendump.vim
18767
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
4 source check.vim
13982
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
5
9906
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6 function Test_tabpage()
18767
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
7 CheckFeature quickfix
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
8
9906
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 bw!
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 " Simple test for opening and closing a tab page
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 tabnew
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 call assert_equal(2, tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 quit
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 " Open three tab pages and use ":tabdo"
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 0tabnew
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 1tabnew
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 $tabnew
10270
e5dddd764fef commit https://github.com/vim/vim/commit/3e8474dd50f64c998bb665ce852f584a58dede6b
Christian Brabandt <cb@256bit.org>
parents: 10136
diff changeset
19 %del
9906
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 tabdo call append(line('$'), tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 tabclose! 2
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 tabrewind
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23 let line1 = getline('$')
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 undo
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 q
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26 tablast
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27 let line2 = getline('$')
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28 q!
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 call append(line('$'), line1)
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 call append(line('$'), line2)
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 unlet line1 line2
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32 call assert_equal(['', '3', '1', '4'], getline(1, '$'))
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33 "
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
34 " Test for settabvar() and gettabvar() functions. Open a new tab page and
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
35 " set 3 variables to a number, string and a list. Verify that the variables
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
36 " are correctly set.
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
37 tabnew
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
38 tabfirst
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
39 call settabvar(2, 'val_num', 100)
18000
7a19c8d6bb9e patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
40 eval 'SetTabVar test'->settabvar(2, 'val_str')
9906
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
41 call settabvar(2, 'val_list', ['red', 'blue', 'green'])
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
42 "
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
43 call assert_true(gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar test' && gettabvar(2, 'val_list') == ['red', 'blue', 'green'])
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
44
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
45 tabnext 2
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
46 call assert_true(t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'])
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
47 tabclose
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
48
13268
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
49 " Test for ":tab drop exist-file" to keep current window.
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
50 sp test1
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
51 tab drop test1
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
52 call assert_true(tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1)
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
53 close
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
54 "
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
55 "
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
56 " Test for ":tab drop new-file" to keep current window of tabpage 1.
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
57 split
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
58 tab drop newfile
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
59 call assert_true(tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && tabpagewinnr(1) == 1)
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
60 tabclose
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
61 q
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
62 "
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
63 "
17918
9606c0adc148 patch 8.1.1955: tests contain typos
Bram Moolenaar <Bram@vim.org>
parents: 16965
diff changeset
64 " Test for ":tab drop multi-opened-file" to keep current tabpage and window.
13268
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
65 new test1
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
66 tabnew
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
67 new test1
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
68 tab drop test1
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
69 call assert_true(tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && tabpagewinnr(2) == 1)
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
70 tabclose
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
71 q
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
72 "
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
73 "
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
74 " Test for ":tab drop vertical-split-window" to jump test1 buffer
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
75 tabedit test1
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
76 vnew
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
77 tabfirst
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
78 tab drop test1
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
79 call assert_equal([2, 2, 2, 2], [tabpagenr('$'), tabpagenr(), tabpagewinnr(2, '$'), tabpagewinnr(2)])
50e1077e0c3d patch 8.0.1508: the :drop command is not always available
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
80 1tabonly
9906
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
81 "
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
82 "
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
83 for i in range(9) | tabnew | endfor
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
84 normal! 1gt
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
85 call assert_equal(1, tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
86 tabmove 5
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
87 call assert_equal(5, tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
88 .tabmove
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
89 call assert_equal(5, tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
90 tabmove -
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
91 call assert_equal(4, tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
92 tabmove +
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
93 call assert_equal(5, tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
94 tabmove -2
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
95 call assert_equal(3, tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
96 tabmove +4
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
97 call assert_equal(7, tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
98 tabmove
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
99 call assert_equal(10, tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
100 0tabmove
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
101 call assert_equal(1, tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
102 $tabmove
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
103 call assert_equal(10, tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
104 tabmove 0
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
105 call assert_equal(1, tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
106 tabmove $
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
107 call assert_equal(10, tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
108 3tabmove
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
109 call assert_equal(4, tabpagenr())
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
110 7tabmove 5
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
111 call assert_equal(5, tabpagenr())
15573
060cb54565c1 patch 8.1.0794: white space before " -Ntabmove" causes problems
Bram Moolenaar <Bram@vim.org>
parents: 14455
diff changeset
112 -tabmove
060cb54565c1 patch 8.1.0794: white space before " -Ntabmove" causes problems
Bram Moolenaar <Bram@vim.org>
parents: 14455
diff changeset
113 call assert_equal(4, tabpagenr())
060cb54565c1 patch 8.1.0794: white space before " -Ntabmove" causes problems
Bram Moolenaar <Bram@vim.org>
parents: 14455
diff changeset
114 +tabmove
060cb54565c1 patch 8.1.0794: white space before " -Ntabmove" causes problems
Bram Moolenaar <Bram@vim.org>
parents: 14455
diff changeset
115 call assert_equal(5, tabpagenr())
060cb54565c1 patch 8.1.0794: white space before " -Ntabmove" causes problems
Bram Moolenaar <Bram@vim.org>
parents: 14455
diff changeset
116 -2tabmove
060cb54565c1 patch 8.1.0794: white space before " -Ntabmove" causes problems
Bram Moolenaar <Bram@vim.org>
parents: 14455
diff changeset
117 call assert_equal(3, tabpagenr())
060cb54565c1 patch 8.1.0794: white space before " -Ntabmove" causes problems
Bram Moolenaar <Bram@vim.org>
parents: 14455
diff changeset
118 +3tabmove
060cb54565c1 patch 8.1.0794: white space before " -Ntabmove" causes problems
Bram Moolenaar <Bram@vim.org>
parents: 14455
diff changeset
119 call assert_equal(6, tabpagenr())
14455
f713e016097d patch 8.1.0241: effect of ":tabmove N" is not clear
Christian Brabandt <cb@256bit.org>
parents: 13982
diff changeset
120
f713e016097d patch 8.1.0241: effect of ":tabmove N" is not clear
Christian Brabandt <cb@256bit.org>
parents: 13982
diff changeset
121 " The following are a no-op
f713e016097d patch 8.1.0241: effect of ":tabmove N" is not clear
Christian Brabandt <cb@256bit.org>
parents: 13982
diff changeset
122 norm! 2gt
f713e016097d patch 8.1.0241: effect of ":tabmove N" is not clear
Christian Brabandt <cb@256bit.org>
parents: 13982
diff changeset
123 call assert_equal(2, tabpagenr())
f713e016097d patch 8.1.0241: effect of ":tabmove N" is not clear
Christian Brabandt <cb@256bit.org>
parents: 13982
diff changeset
124 tabmove 2
f713e016097d patch 8.1.0241: effect of ":tabmove N" is not clear
Christian Brabandt <cb@256bit.org>
parents: 13982
diff changeset
125 call assert_equal(2, tabpagenr())
f713e016097d patch 8.1.0241: effect of ":tabmove N" is not clear
Christian Brabandt <cb@256bit.org>
parents: 13982
diff changeset
126 2tabmove
f713e016097d patch 8.1.0241: effect of ":tabmove N" is not clear
Christian Brabandt <cb@256bit.org>
parents: 13982
diff changeset
127 call assert_equal(2, tabpagenr())
f713e016097d patch 8.1.0241: effect of ":tabmove N" is not clear
Christian Brabandt <cb@256bit.org>
parents: 13982
diff changeset
128 tabmove 1
f713e016097d patch 8.1.0241: effect of ":tabmove N" is not clear
Christian Brabandt <cb@256bit.org>
parents: 13982
diff changeset
129 call assert_equal(2, tabpagenr())
f713e016097d patch 8.1.0241: effect of ":tabmove N" is not clear
Christian Brabandt <cb@256bit.org>
parents: 13982
diff changeset
130 1tabmove
f713e016097d patch 8.1.0241: effect of ":tabmove N" is not clear
Christian Brabandt <cb@256bit.org>
parents: 13982
diff changeset
131 call assert_equal(2, tabpagenr())
f713e016097d patch 8.1.0241: effect of ":tabmove N" is not clear
Christian Brabandt <cb@256bit.org>
parents: 13982
diff changeset
132
21703
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
133 call assert_fails('let t = tabpagenr("@")', 'E15:')
20158
94f05de75e9f patch 8.2.0634: crash with null partial and blob
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
134 call assert_equal(0, tabpagewinnr(-1))
10739
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
135 call assert_fails("99tabmove", 'E16:')
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
136 call assert_fails("+99tabmove", 'E16:')
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
137 call assert_fails("-99tabmove", 'E16:')
21459
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
138 call assert_fails("tabmove foo", 'E475:')
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
139 call assert_fails("tabmove 99", 'E475:')
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
140 call assert_fails("tabmove +99", 'E475:')
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
141 call assert_fails("tabmove -99", 'E475:')
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
142 call assert_fails("tabmove -3+", 'E475:')
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
143 call assert_fails("tabmove $3", 'E475:')
19425
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19112
diff changeset
144 call assert_fails("%tabonly", 'E16:')
10739
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
145 1tabonly!
21020
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
146 tabmove 1
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
147 call assert_equal(1, tabpagenr())
19425
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19112
diff changeset
148 tabnew
21459
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
149 call assert_fails("-2tabmove", 'E16:')
19425
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19112
diff changeset
150 tabonly!
9906
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
151 endfunc
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
152
32282
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
153 func Test_tabpage_drop()
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
154 edit f1
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
155 tab split f2
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
156 tab split f3
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
157 normal! gt
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
158 call assert_equal(1, tabpagenr())
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
159
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
160 tab drop f3
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
161 call assert_equal(3, tabpagenr())
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
162 call assert_equal(1, tabpagenr('#'))
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
163 bwipe!
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
164 bwipe!
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
165 bwipe!
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
166 call assert_equal(1, tabpagenr('$'))
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
167 endfunc
e47739c49487 patch 9.0.1472: ":drop fname" may change the last used tab page
Bram Moolenaar <Bram@vim.org>
parents: 32062
diff changeset
168
9906
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
169 " Test autocommands
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
170 function Test_tabpage_with_autocmd()
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
171 command -nargs=1 -bar C :call add(s:li, '=== ' . <q-args> . ' ===')|<args>
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
172 augroup TestTabpageGroup
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
173 au!
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
174 autocmd TabEnter * call add(s:li, 'TabEnter')
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
175 autocmd WinEnter * call add(s:li, 'WinEnter')
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
176 autocmd BufEnter * call add(s:li, 'BufEnter')
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
177 autocmd TabLeave * call add(s:li, 'TabLeave')
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
178 autocmd WinLeave * call add(s:li, 'WinLeave')
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
179 autocmd BufLeave * call add(s:li, 'BufLeave')
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
180 augroup END
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
181
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
182 let s:li = []
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
183 let t:a='a'
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
184 C tab split
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
185 call assert_equal(['=== tab split ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter'], s:li)
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
186 let s:li = []
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
187 let t:a='b'
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
188 C tabnew
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
189 call assert_equal(['=== tabnew ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter'], s:li)
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
190 let t:a='c'
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
191 let s:li = split(join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')) , '\s\+')
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
192 call assert_equal(['a', 'b', 'c'], s:li)
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
193
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
194 let s:li = []
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
195 C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
196 call assert_equal(["=== call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') ==="], s:li)
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
197 let s:li = split(join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')) , '\s\+')
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
198 call assert_equal(['2', '4', '6'], s:li)
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
199
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
200 let s:li = []
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
201 let w:a='a'
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
202 C vsplit
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
203 call assert_equal(['=== vsplit ===', 'WinLeave', 'WinEnter'], s:li)
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
204 let s:li = []
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
205 let w:a='a'
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
206 let tabn=tabpagenr()
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
207 let winr=range(1, winnr('$'))
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
208 C tabnext 1
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
209 call assert_equal(['=== tabnext 1 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter'], s:li)
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
210 let s:li = split(join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')), '\s\+')
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
211 call assert_equal(['a', 'a'], s:li)
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
212 let s:li = []
18000
7a19c8d6bb9e patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
213 C call map(copy(winr), '(v:val*2)->settabwinvar(' .. tabn .. ', v:val, ''a'')')
9906
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
214 let s:li = split(join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')), '\s\+')
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
215 call assert_equal(['2', '4'], s:li)
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
216
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
217 augroup TabDestructive
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
218 autocmd TabEnter * :C tabnext 2 | C tabclose 3
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
219 augroup END
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
220 let s:li = []
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
221 C tabnext 3
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
222 call assert_equal(['=== tabnext 3 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', '=== tabnext 2 ===', '=== tabclose 3 ==='], s:li)
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
223 call assert_equal(['2/2'], [tabpagenr().'/'.tabpagenr('$')])
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
224
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
225 autocmd! TabDestructive TabEnter
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
226 let s:li = []
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
227 C tabnew
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
228 call assert_equal(['=== tabnew ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter'], s:li)
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
229 let s:li = []
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
230 C tabnext 1
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
231 call assert_equal(['=== tabnext 1 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter'], s:li)
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
232
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
233 autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
234 let s:li = []
10739
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
235 call assert_equal(3, tabpagenr('$'))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
236 C tabnext 2
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
237 call assert_equal(2, tabpagenr('$'))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
238 call assert_equal(['=== tabnext 2 ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', '=== tabnext 2 ===', '=== tabclose 3 ==='], s:li)
9906
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
239 call assert_equal(['2/2'], [tabpagenr().'/'.tabpagenr('$')])
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
240
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
241 delcommand C
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
242 autocmd! TabDestructive
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
243 augroup! TabDestructive
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
244 autocmd! TestTabpageGroup
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
245 augroup! TestTabpageGroup
10739
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
246 1tabonly!
9906
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
247 endfunction
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
248
19112
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
249 " Test autocommands on tab drop
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
250 function Test_tabpage_with_autocmd_tab_drop()
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
251 augroup TestTabpageGroup
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
252 au!
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
253 autocmd TabEnter * call add(s:li, 'TabEnter')
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
254 autocmd WinEnter * call add(s:li, 'WinEnter')
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
255 autocmd BufEnter * call add(s:li, 'BufEnter')
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
256 autocmd TabLeave * call add(s:li, 'TabLeave')
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
257 autocmd WinLeave * call add(s:li, 'WinLeave')
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
258 autocmd BufLeave * call add(s:li, 'BufLeave')
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
259 augroup END
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
260
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
261 let s:li = []
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
262 tab drop test1
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
263 call assert_equal(['BufLeave', 'BufEnter'], s:li)
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
264
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
265 let s:li = []
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
266 tab drop test2 test3
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
267 call assert_equal([
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
268 \ 'TabLeave', 'TabEnter', 'TabLeave', 'TabEnter',
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
269 \ 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter',
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
270 \ 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter'], s:li)
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
271
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
272 autocmd! TestTabpageGroup
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
273 augroup! TestTabpageGroup
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
274 1tabonly!
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
275 endfunction
0b337617877e patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
276
9927
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
277 function Test_tabpage_with_tab_modifier()
18767
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
278 CheckFeature quickfix
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
279
9927
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
280 for n in range(4)
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
281 tabedit
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
282 endfor
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
283
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
284 function s:check_tab(pre_nr, cmd, post_nr)
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
285 exec 'tabnext ' . a:pre_nr
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
286 exec a:cmd
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
287 call assert_equal(a:post_nr, tabpagenr())
10136
13304dccb96e commit https://github.com/vim/vim/commit/100f5c90f4d4fb40bc3aeabc35192db371f5988f
Christian Brabandt <cb@256bit.org>
parents: 10082
diff changeset
288 call assert_equal('help', &buftype)
9927
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
289 helpclose
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
290 endfunc
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
291
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
292 call s:check_tab(1, 'tab help', 2)
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
293 call s:check_tab(1, '3tab help', 4)
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
294 call s:check_tab(1, '.tab help', 2)
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
295 call s:check_tab(1, '.+1tab help', 3)
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
296 call s:check_tab(1, '0tab help', 1)
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
297 call s:check_tab(2, '+tab help', 4)
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
298 call s:check_tab(2, '+2tab help', 5)
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
299 call s:check_tab(4, '-tab help', 4)
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
300 call s:check_tab(4, '-2tab help', 3)
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
301 call s:check_tab(3, '$tab help', 6)
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
302 call assert_fails('99tab help', 'E16:')
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
303 call assert_fails('+99tab help', 'E16:')
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
304 call assert_fails('-99tab help', 'E16:')
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
305
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
306 delfunction s:check_tab
10739
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
307 1tabonly!
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
308 endfunction
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
309
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
310 function Check_tab_count(pre_nr, cmd, post_nr)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
311 exec 'tabnext' a:pre_nr
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
312 normal! G
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
313 exec a:cmd
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
314 call assert_equal(a:post_nr, tabpagenr(), a:cmd)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
315 endfunc
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
316
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
317 " Test for [count] of tabnext
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
318 function Test_tabpage_with_tabnext()
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
319 for n in range(4)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
320 tabedit
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
321 call setline(1, ['', '', '3'])
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
322 endfor
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
323
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
324 call Check_tab_count(1, 'tabnext', 2)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
325 call Check_tab_count(1, '3tabnext', 3)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
326 call Check_tab_count(1, '.tabnext', 1)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
327 call Check_tab_count(1, '.+1tabnext', 2)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
328 call Check_tab_count(2, '+tabnext', 3)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
329 call Check_tab_count(2, '+2tabnext', 4)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
330 call Check_tab_count(4, '-tabnext', 3)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
331 call Check_tab_count(4, '-2tabnext', 2)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
332 call Check_tab_count(3, '$tabnext', 5)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
333 call assert_fails('0tabnext', 'E16:')
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
334 call assert_fails('99tabnext', 'E16:')
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
335 call assert_fails('+99tabnext', 'E16:')
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
336 call assert_fails('-99tabnext', 'E16:')
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
337 call Check_tab_count(1, 'tabnext 3', 3)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
338 call Check_tab_count(2, 'tabnext +', 3)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
339 call Check_tab_count(2, 'tabnext +2', 4)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
340 call Check_tab_count(4, 'tabnext -', 3)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
341 call Check_tab_count(4, 'tabnext -2', 2)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
342 call Check_tab_count(3, 'tabnext $', 5)
21459
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
343 call assert_fails('tabnext 0', 'E475:')
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
344 call assert_fails('tabnext .', 'E475:')
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
345 call assert_fails('tabnext -+', 'E475:')
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
346 call assert_fails('tabnext +2-', 'E475:')
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
347 call assert_fails('tabnext $3', 'E475:')
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
348 call assert_fails('tabnext 99', 'E475:')
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
349 call assert_fails('tabnext +99', 'E475:')
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
350 call assert_fails('tabnext -99', 'E475:')
10739
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
351
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
352 1tabonly!
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
353 endfunction
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
354
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
355 " Test for [count] of tabprevious
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
356 function Test_tabpage_with_tabprevious()
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
357 for n in range(5)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
358 tabedit
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
359 call setline(1, ['', '', '3'])
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
360 endfor
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
361
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
362 for cmd in ['tabNext', 'tabprevious']
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
363 call Check_tab_count(6, cmd, 5)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
364 call Check_tab_count(6, '3' . cmd, 3)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
365 call Check_tab_count(6, '8' . cmd, 4)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
366 call Check_tab_count(6, cmd . ' 3', 3)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
367 call Check_tab_count(6, cmd . ' 8', 4)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
368 for n in range(2)
21552
cbc570e66d11 patch 8.2.1326: Vim9: skipping over white space after list
Bram Moolenaar <Bram@vim.org>
parents: 21459
diff changeset
369 for c in ['0', '.+3', '+', '+2', '-', '-2', '$', '+99', '-99']
10739
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
370 if n == 0 " pre count
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
371 let entire_cmd = c . cmd
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
372 let err_code = 'E16:'
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
373 else
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
374 let entire_cmd = cmd . ' ' . c
21459
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
375 let err_code = 'E475:'
10739
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
376 endif
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
377 call assert_fails(entire_cmd, err_code)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
378 endfor
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
379 endfor
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
380 endfor
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
381
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
382 1tabonly!
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
383 endfunction
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
384
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
385 function s:reconstruct_tabpage_for_test(nr)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
386 let n = (a:nr > 2) ? a:nr - 2 : 1
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
387 1tabonly!
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
388 0tabedit n0
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
389 for n in range(1, n)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
390 exec '$tabedit n' . n
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
391 if n == 1
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
392 call setline(1, ['', '', '3'])
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
393 endif
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
394 endfor
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
395 endfunc
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
396
13982
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
397 func Test_tabpage_ctrl_pgup_pgdown()
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
398 enew!
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
399 tabnew tab1
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
400 tabnew tab2
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
401
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
402 call assert_equal(3, tabpagenr())
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
403 exe "norm! \<C-PageUp>"
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
404 call assert_equal(2, tabpagenr())
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
405 exe "norm! \<C-PageDown>"
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
406 call assert_equal(3, tabpagenr())
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
407
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
408 " Check wrapping at last or first page.
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
409 exe "norm! \<C-PageDown>"
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
410 call assert_equal(1, tabpagenr())
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
411 exe "norm! \<C-PageUp>"
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
412 call assert_equal(3, tabpagenr())
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
413
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
414 " With a count, <C-PageUp> and <C-PageDown> are not symmetrical somehow:
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
415 " - {count}<C-PageUp> goes {count} pages downward (relative count)
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
416 " - {count}<C-PageDown> goes to page number {count} (absolute count)
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
417 exe "norm! 2\<C-PageUp>"
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
418 call assert_equal(1, tabpagenr())
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
419 exe "norm! 2\<C-PageDown>"
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
420 call assert_equal(2, tabpagenr())
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
421
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
422 1tabonly!
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
423 endfunc
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
424
10739
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
425 " Test for [count] of tabclose
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
426 function Test_tabpage_with_tabclose()
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
427
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
428 " pre count
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
429 call s:reconstruct_tabpage_for_test(6)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
430 call Check_tab_count(3, 'tabclose!', 3)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
431 call Check_tab_count(1, '3tabclose', 1)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
432 call Check_tab_count(4, '4tabclose', 3)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
433 call Check_tab_count(3, '1tabclose', 2)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
434 call Check_tab_count(2, 'tabclose', 1)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
435 call assert_equal(1, tabpagenr('$'))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
436 call assert_equal('', bufname(''))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
437
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
438 call s:reconstruct_tabpage_for_test(6)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
439 call Check_tab_count(2, '$tabclose', 2)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
440 call Check_tab_count(4, '.tabclose', 4)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
441 call Check_tab_count(3, '.+tabclose', 3)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
442 call Check_tab_count(3, '.-2tabclose', 2)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
443 call Check_tab_count(1, '.+1tabclose!', 1)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
444 call assert_equal(1, tabpagenr('$'))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
445 call assert_equal('', bufname(''))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
446
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
447 " post count
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
448 call s:reconstruct_tabpage_for_test(6)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
449 call Check_tab_count(3, 'tabclose!', 3)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
450 call Check_tab_count(1, 'tabclose 3', 1)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
451 call Check_tab_count(4, 'tabclose 4', 3)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
452 call Check_tab_count(3, 'tabclose 1', 2)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
453 call Check_tab_count(2, 'tabclose', 1)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
454 call assert_equal(1, tabpagenr('$'))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
455 call assert_equal('', bufname(''))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
456
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
457 call s:reconstruct_tabpage_for_test(6)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
458 call Check_tab_count(2, 'tabclose $', 2)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
459 call Check_tab_count(4, 'tabclose', 4)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
460 call Check_tab_count(3, 'tabclose +', 3)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
461 call Check_tab_count(3, 'tabclose -2', 2)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
462 call Check_tab_count(1, 'tabclose! +1', 1)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
463 call assert_equal(1, tabpagenr('$'))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
464 call assert_equal('', bufname(''))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
465
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
466 call s:reconstruct_tabpage_for_test(6)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
467 for n in range(2)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
468 for c in ['0', '$3', '99', '+99', '-99']
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
469 if n == 0 " pre count
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
470 let entire_cmd = c . 'tabclose'
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
471 let err_code = 'E16:'
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
472 else
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
473 let entire_cmd = 'tabclose ' . c
21459
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
474 let err_code = 'E475:'
10739
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
475 endif
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
476 call assert_fails(entire_cmd, err_code)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
477 call assert_equal(6, tabpagenr('$'))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
478 endfor
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
479 endfor
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
480
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
481 call assert_fails('3tabclose', 'E37:')
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
482 call assert_fails('tabclose 3', 'E37:')
21459
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
483 call assert_fails('tabclose -+', 'E475:')
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
484 call assert_fails('tabclose +2-', 'E475:')
10739
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
485 call assert_equal(6, tabpagenr('$'))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
486
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
487 1tabonly!
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
488 endfunction
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
489
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
490 " Test for [count] of tabonly
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
491 function Test_tabpage_with_tabonly()
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
492
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
493 " Test for the normal behavior (pre count only)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
494 let tc = [ [4, '.', '!'], [2, '.+', ''], [3, '.-2', '!'], [1, '.+1', '!'] ]
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
495 for c in tc
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
496 call s:reconstruct_tabpage_for_test(6)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
497 let entire_cmd = c[1] . 'tabonly' . c[2]
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
498 call Check_tab_count(c[0], entire_cmd, 1)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
499 call assert_equal(1, tabpagenr('$'))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
500 endfor
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
501
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
502 " Test for the normal behavior
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
503 let tc2 = [ [3, '', ''], [1, '3', ''], [4, '4', '!'], [3, '1', '!'],
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
504 \ [2, '', '!'],
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
505 \ [2, '$', '!'], [3, '+', '!'], [3, '-2', '!'], [3, '+1', '!']
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
506 \ ]
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
507 for n in range(2)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
508 for c in tc2
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
509 call s:reconstruct_tabpage_for_test(6)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
510 if n == 0 " pre count
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
511 let entire_cmd = c[1] . 'tabonly' . c[2]
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
512 else
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
513 let entire_cmd = 'tabonly' . c[2] . ' ' . c[1]
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
514 endif
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
515 call Check_tab_count(c[0], entire_cmd, 1)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
516 call assert_equal(1, tabpagenr('$'))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
517 endfor
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
518 endfor
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
519
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
520 " Test for the error behavior
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
521 for n in range(2)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
522 for c in ['0', '$3', '99', '+99', '-99']
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
523 call s:reconstruct_tabpage_for_test(6)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
524 if n == 0 " pre count
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
525 let entire_cmd = c . 'tabonly'
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
526 let err_code = 'E16:'
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
527 else
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
528 let entire_cmd = 'tabonly ' . c
21459
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
529 let err_code = 'E475:'
10739
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
530 endif
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
531 call assert_fails(entire_cmd, err_code)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
532 call assert_equal(6, tabpagenr('$'))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
533 endfor
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
534 endfor
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
535
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
536 " Test for the error behavior (post count only)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
537 for c in tc
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
538 call s:reconstruct_tabpage_for_test(6)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
539 let entire_cmd = 'tabonly' . c[2] . ' ' . c[1]
21459
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
540 let err_code = 'E475:'
10739
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
541 call assert_fails(entire_cmd, err_code)
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
542 call assert_equal(6, tabpagenr('$'))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
543 endfor
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
544
21459
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
545 call assert_fails('tabonly -+', 'E475:')
a422bd80b434 patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
546 call assert_fails('tabonly +2-', 'E475:')
10739
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
547 call assert_equal(6, tabpagenr('$'))
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
548
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
549 1tabonly!
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
550 new
380e706814da patch 8.0.0259: tab commands do not handle count correctly
Christian Brabandt <cb@256bit.org>
parents: 10432
diff changeset
551 only!
9927
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
552 endfunction
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 9906
diff changeset
553
10082
7fc6103c6651 commit https://github.com/vim/vim/commit/5a49789a9b1f6447aeafbbbdd5b235dd10c471d5
Christian Brabandt <cb@256bit.org>
parents: 10076
diff changeset
554 func Test_tabnext_on_buf_unload1()
10076
bc30991c3e98 commit https://github.com/vim/vim/commit/11fbc2866ccc11b4dd1726abdaf582a78ef3f743
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
555 " This once caused a crash
bc30991c3e98 commit https://github.com/vim/vim/commit/11fbc2866ccc11b4dd1726abdaf582a78ef3f743
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
556 new
bc30991c3e98 commit https://github.com/vim/vim/commit/11fbc2866ccc11b4dd1726abdaf582a78ef3f743
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
557 tabedit
bc30991c3e98 commit https://github.com/vim/vim/commit/11fbc2866ccc11b4dd1726abdaf582a78ef3f743
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
558 tabfirst
bc30991c3e98 commit https://github.com/vim/vim/commit/11fbc2866ccc11b4dd1726abdaf582a78ef3f743
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
559 au BufUnload <buffer> tabnext
bc30991c3e98 commit https://github.com/vim/vim/commit/11fbc2866ccc11b4dd1726abdaf582a78ef3f743
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
560 q
bc30991c3e98 commit https://github.com/vim/vim/commit/11fbc2866ccc11b4dd1726abdaf582a78ef3f743
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
561
bc30991c3e98 commit https://github.com/vim/vim/commit/11fbc2866ccc11b4dd1726abdaf582a78ef3f743
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
562 while tabpagenr('$') > 1
10082
7fc6103c6651 commit https://github.com/vim/vim/commit/5a49789a9b1f6447aeafbbbdd5b235dd10c471d5
Christian Brabandt <cb@256bit.org>
parents: 10076
diff changeset
563 bwipe!
7fc6103c6651 commit https://github.com/vim/vim/commit/5a49789a9b1f6447aeafbbbdd5b235dd10c471d5
Christian Brabandt <cb@256bit.org>
parents: 10076
diff changeset
564 endwhile
7fc6103c6651 commit https://github.com/vim/vim/commit/5a49789a9b1f6447aeafbbbdd5b235dd10c471d5
Christian Brabandt <cb@256bit.org>
parents: 10076
diff changeset
565 endfunc
7fc6103c6651 commit https://github.com/vim/vim/commit/5a49789a9b1f6447aeafbbbdd5b235dd10c471d5
Christian Brabandt <cb@256bit.org>
parents: 10076
diff changeset
566
7fc6103c6651 commit https://github.com/vim/vim/commit/5a49789a9b1f6447aeafbbbdd5b235dd10c471d5
Christian Brabandt <cb@256bit.org>
parents: 10076
diff changeset
567 func Test_tabnext_on_buf_unload2()
7fc6103c6651 commit https://github.com/vim/vim/commit/5a49789a9b1f6447aeafbbbdd5b235dd10c471d5
Christian Brabandt <cb@256bit.org>
parents: 10076
diff changeset
568 " This once caused a crash
7fc6103c6651 commit https://github.com/vim/vim/commit/5a49789a9b1f6447aeafbbbdd5b235dd10c471d5
Christian Brabandt <cb@256bit.org>
parents: 10076
diff changeset
569 tabedit
7fc6103c6651 commit https://github.com/vim/vim/commit/5a49789a9b1f6447aeafbbbdd5b235dd10c471d5
Christian Brabandt <cb@256bit.org>
parents: 10076
diff changeset
570 autocmd BufUnload <buffer> tabnext
7fc6103c6651 commit https://github.com/vim/vim/commit/5a49789a9b1f6447aeafbbbdd5b235dd10c471d5
Christian Brabandt <cb@256bit.org>
parents: 10076
diff changeset
571 file x
7fc6103c6651 commit https://github.com/vim/vim/commit/5a49789a9b1f6447aeafbbbdd5b235dd10c471d5
Christian Brabandt <cb@256bit.org>
parents: 10076
diff changeset
572 edit y
7fc6103c6651 commit https://github.com/vim/vim/commit/5a49789a9b1f6447aeafbbbdd5b235dd10c471d5
Christian Brabandt <cb@256bit.org>
parents: 10076
diff changeset
573
7fc6103c6651 commit https://github.com/vim/vim/commit/5a49789a9b1f6447aeafbbbdd5b235dd10c471d5
Christian Brabandt <cb@256bit.org>
parents: 10076
diff changeset
574 while tabpagenr('$') > 1
7fc6103c6651 commit https://github.com/vim/vim/commit/5a49789a9b1f6447aeafbbbdd5b235dd10c471d5
Christian Brabandt <cb@256bit.org>
parents: 10076
diff changeset
575 bwipe!
10076
bc30991c3e98 commit https://github.com/vim/vim/commit/11fbc2866ccc11b4dd1726abdaf582a78ef3f743
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
576 endwhile
bc30991c3e98 commit https://github.com/vim/vim/commit/11fbc2866ccc11b4dd1726abdaf582a78ef3f743
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
577 endfunc
bc30991c3e98 commit https://github.com/vim/vim/commit/11fbc2866ccc11b4dd1726abdaf582a78ef3f743
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
578
11635
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
579 func Test_close_on_quitpre()
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
580 " This once caused a crash
12688
a6a935b3270e patch 8.0.1222: test functions interfere with each other
Christian Brabandt <cb@256bit.org>
parents: 11635
diff changeset
581 edit Xtest
11635
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
582 new
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
583 only
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
584 set bufhidden=delete
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
585 au QuitPre <buffer> close
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
586 tabnew tab1
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
587 tabnew tab2
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
588 1tabn
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
589 q!
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
590 call assert_equal(1, tabpagenr())
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
591 call assert_equal(2, tabpagenr('$'))
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
592 " clean up
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
593 while tabpagenr('$') > 1
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
594 bwipe!
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
595 endwhile
12688
a6a935b3270e patch 8.0.1222: test functions interfere with each other
Christian Brabandt <cb@256bit.org>
parents: 11635
diff changeset
596 buf Xtest
11635
70bc7b107610 patch 8.0.0700: segfault with QuitPre autocommand closes the window
Christian Brabandt <cb@256bit.org>
parents: 10739
diff changeset
597 endfunc
10076
bc30991c3e98 commit https://github.com/vim/vim/commit/11fbc2866ccc11b4dd1726abdaf582a78ef3f743
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
598
13982
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
599 func Test_tabs()
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
600 enew!
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
601 tabnew tab1
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
602 norm ixxx
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
603 let a=split(execute(':tabs'), "\n")
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
604 call assert_equal(['Tab page 1',
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
605 \ ' [No Name]',
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
606 \ 'Tab page 2',
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
607 \ '> + tab1'], a)
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
608
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
609 1tabonly!
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
610 bw!
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
611 endfunc
29bad8212db3 patch 8.1.0009: tabpages insufficiently tested
Christian Brabandt <cb@256bit.org>
parents: 13268
diff changeset
612
16477
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
613 func Test_tabpage_cmdheight()
20625
116c7bd5e980 patch 8.2.0866: not enough tests for buffer writing
Bram Moolenaar <Bram@vim.org>
parents: 20158
diff changeset
614 CheckRunVimInTerminal
16477
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
615 call writefile([
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
616 \ 'set laststatus=2',
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
617 \ 'set cmdheight=2',
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
618 \ 'tabnew',
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
619 \ 'set cmdheight=3',
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
620 \ 'tabnext',
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
621 \ 'redraw!',
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
622 \ 'echo "hello\nthere"',
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
623 \ 'tabnext',
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
624 \ 'redraw',
30865
c8ebe35b2475 patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30657
diff changeset
625 \ ], 'XTest_tabpage_cmdheight', 'D')
16477
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
626 " Check that cursor line is concealed
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
627 let buf = RunVimInTerminal('-S XTest_tabpage_cmdheight', {'statusoff': 3})
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
628 call VerifyScreenDump(buf, 'Test_tabpage_cmdheight', {})
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
629
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
630 call StopVimInTerminal(buf)
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
631 endfunc
8cc31b1b1d23 patch 8.1.1242: no cmdline redraw when tabpages have different 'cmdheight'
Bram Moolenaar <Bram@vim.org>
parents: 16376
diff changeset
632
19425
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19112
diff changeset
633 " Test for closing the tab page from a command window
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19112
diff changeset
634 func Test_tabpage_close_cmdwin()
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19112
diff changeset
635 tabnew
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19112
diff changeset
636 call feedkeys("q/:tabclose\<CR>\<Esc>", 'xt')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19112
diff changeset
637 call assert_equal(2, tabpagenr('$'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19112
diff changeset
638 call feedkeys("q/:tabonly\<CR>\<Esc>", 'xt')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19112
diff changeset
639 call assert_equal(2, tabpagenr('$'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19112
diff changeset
640 tabonly
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19112
diff changeset
641 endfunc
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19112
diff changeset
642
20941
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20625
diff changeset
643 " Pressing <C-PageUp> in insert mode should go to the previous tab page
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20625
diff changeset
644 " and <C-PageDown> should go to the next tab page
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20625
diff changeset
645 func Test_tabpage_Ctrl_Pageup()
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20625
diff changeset
646 tabnew
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20625
diff changeset
647 call feedkeys("i\<C-PageUp>", 'xt')
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20625
diff changeset
648 call assert_equal(1, tabpagenr())
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20625
diff changeset
649 call feedkeys("i\<C-PageDown>", 'xt')
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20625
diff changeset
650 call assert_equal(2, tabpagenr())
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20625
diff changeset
651 %bw!
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20625
diff changeset
652 endfunc
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20625
diff changeset
653
20947
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
654 " Return the terminal key code for selecting a tab page from the tabline. This
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
655 " sequence contains the following codes: a CSI (0x9b), KS_TABLINE (0xf0),
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
656 " KS_FILLER (0x58) and then the tab page number.
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
657 func TabLineSelectPageCode(tabnr)
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
658 return "\x9b\xf0\x58" .. nr2char(a:tabnr)
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
659 endfunc
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
660
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
661 " Return the terminal key code for opening a new tabpage from the tabpage
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
662 " menu. This sequence consists of the following codes: a CSI (0x9b),
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
663 " KS_TABMENU (0xef), KS_FILLER (0x58), the tab page number and
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
664 " TABLINE_MENU_NEW (2).
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
665 func TabMenuNewItemCode(tabnr)
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
666 return "\x9b\xef\x58" .. nr2char(a:tabnr) .. nr2char(2)
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
667 endfunc
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
668
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
669 " Return the terminal key code for closing a tabpage from the tabpage menu.
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
670 " This sequence consists of the following codes: a CSI (0x9b), KS_TABMENU
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
671 " (0xef), KS_FILLER (0x58), the tab page number and TABLINE_MENU_CLOSE (1).
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
672 func TabMenuCloseItemCode(tabnr)
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
673 return "\x9b\xef\x58" .. nr2char(a:tabnr) .. nr2char(1)
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
674 endfunc
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
675
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
676 " Test for using the tabpage menu from the insert and normal modes
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
677 func Test_tabline_tabmenu()
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
678 " only works in GUI
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
679 CheckGui
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
680
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
681 %bw!
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
682 tabnew
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
683 tabnew
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
684 call assert_equal(3, tabpagenr())
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
685
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
686 " go to tab page 2 in normal mode
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
687 call feedkeys(TabLineSelectPageCode(2), "Lx!")
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
688 call assert_equal(2, tabpagenr())
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
689
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
690 " close tab page 3 in normal mode
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
691 call feedkeys(TabMenuCloseItemCode(3), "Lx!")
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
692 call assert_equal(2, tabpagenr('$'))
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
693 call assert_equal(2, tabpagenr())
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
694
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
695 " open new tab page before tab page 1 in normal mode
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
696 call feedkeys(TabMenuNewItemCode(1), "Lx!")
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
697 call assert_equal(1, tabpagenr())
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
698 call assert_equal(3, tabpagenr('$'))
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
699
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
700 " go to tab page 2 in operator-pending mode (should beep)
22502
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21727
diff changeset
701 call assert_beeps('call feedkeys("c" .. TabLineSelectPageCode(2), "Lx!")')
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21727
diff changeset
702 call assert_equal(2, tabpagenr())
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21727
diff changeset
703 call assert_equal(3, tabpagenr('$'))
20947
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
704
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
705 " open new tab page before tab page 1 in operator-pending mode (should beep)
22502
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21727
diff changeset
706 call assert_beeps('call feedkeys("c" .. TabMenuNewItemCode(1), "Lx!")')
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21727
diff changeset
707 call assert_equal(1, tabpagenr())
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21727
diff changeset
708 call assert_equal(4, tabpagenr('$'))
20947
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
709
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
710 " open new tab page after tab page 3 in normal mode
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
711 call feedkeys(TabMenuNewItemCode(4), "Lx!")
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
712 call assert_equal(4, tabpagenr())
22502
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21727
diff changeset
713 call assert_equal(5, tabpagenr('$'))
20947
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
714
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
715 " go to tab page 2 in insert mode
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
716 call feedkeys("i" .. TabLineSelectPageCode(2) .. "\<C-C>", "Lx!")
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
717 call assert_equal(2, tabpagenr())
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
718
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
719 " close tab page 2 in insert mode
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
720 call feedkeys("i" .. TabMenuCloseItemCode(2) .. "\<C-C>", "Lx!")
22502
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21727
diff changeset
721 call assert_equal(4, tabpagenr('$'))
20947
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
722
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
723 " open new tab page before tab page 3 in insert mode
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
724 call feedkeys("i" .. TabMenuNewItemCode(3) .. "\<C-C>", "Lx!")
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
725 call assert_equal(3, tabpagenr())
22502
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21727
diff changeset
726 call assert_equal(5, tabpagenr('$'))
20947
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
727
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
728 " open new tab page after tab page 4 in insert mode
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
729 call feedkeys("i" .. TabMenuNewItemCode(5) .. "\<C-C>", "Lx!")
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
730 call assert_equal(5, tabpagenr())
22502
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21727
diff changeset
731 call assert_equal(6, tabpagenr('$'))
20947
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
732
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
733 %bw!
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
734 endfunc
1c71605f0c5d patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
735
21020
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
736 " Test for changing the current tab page from an autocmd when closing a tab
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
737 " page.
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
738 func Test_tabpage_switchtab_on_close()
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
739 only
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
740 tabnew
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
741 tabnew
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
742 " Test for BufLeave
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
743 augroup T1
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
744 au!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
745 au BufLeave * tabfirst
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
746 augroup END
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
747 tabclose
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
748 call assert_equal(1, tabpagenr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
749 augroup T1
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
750 au!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
751 augroup END
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
752
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
753 " Test for WinLeave
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
754 $tabnew
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
755 augroup T1
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
756 au!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
757 au WinLeave * tabfirst
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
758 augroup END
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
759 tabclose
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
760 call assert_equal(1, tabpagenr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
761 augroup T1
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
762 au!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
763 augroup END
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
764
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
765 " Test for TabLeave
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
766 $tabnew
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
767 augroup T1
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
768 au!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
769 au TabLeave * tabfirst
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
770 augroup END
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
771 tabclose
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
772 call assert_equal(1, tabpagenr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
773 augroup T1
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
774 au!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
775 augroup END
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
776 augroup! T1
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
777 tabonly
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
778 endfunc
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
779
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
780 " Test for closing the destination tabpage when jumping from one to another.
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
781 func Test_tabpage_close_on_switch()
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
782 tabnew
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
783 tabnew
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 28289
diff changeset
784 edit Xtabfile
21020
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
785 augroup T2
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
786 au!
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 28289
diff changeset
787 au BufLeave Xtabfile 1tabclose
21020
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
788 augroup END
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
789 tabfirst
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
790 call assert_equal(2, tabpagenr())
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 28289
diff changeset
791 call assert_equal('Xtabfile', @%)
21020
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
792 augroup T2
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
793 au!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
794 augroup END
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
795 augroup! T2
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
796 %bw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
797 endfunc
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20947
diff changeset
798
21703
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
799 " Test for jumping to last accessed tabpage
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
800 func Test_lastused_tabpage()
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
801 tabonly!
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
802 call assert_equal(0, tabpagenr('#'))
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
803 call assert_beeps('call feedkeys("g\<Tab>", "xt")')
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
804 call assert_beeps('call feedkeys("\<C-Tab>", "xt")')
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
805 call assert_beeps('call feedkeys("\<C-W>g\<Tab>", "xt")')
21727
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
806 call assert_fails('tabnext #', 'E475:')
21703
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
807
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
808 " open four tab pages
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
809 tabnew
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
810 tabnew
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
811 tabnew
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
812
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
813 2tabnext
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
814
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
815 " Test for g<Tab>
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
816 call assert_equal(4, tabpagenr('#'))
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
817 call feedkeys("g\<Tab>", "xt")
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
818 call assert_equal(4, tabpagenr())
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
819 call assert_equal(2, tabpagenr('#'))
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
820
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
821 " Test for <C-Tab>
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
822 call feedkeys("\<C-Tab>", "xt")
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
823 call assert_equal(2, tabpagenr())
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
824 call assert_equal(4, tabpagenr('#'))
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
825
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
826 " Test for <C-W>g<Tab>
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
827 call feedkeys("\<C-W>g\<Tab>", "xt")
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
828 call assert_equal(4, tabpagenr())
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
829 call assert_equal(2, tabpagenr('#'))
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
830
21727
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
831 " Test for :tabnext #
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
832 tabnext #
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
833 call assert_equal(2, tabpagenr())
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
834 call assert_equal(4, tabpagenr('#'))
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
835
21703
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
836 " Try to jump to a closed tab page
21727
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
837 tabclose #
21703
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
838 call assert_equal(0, tabpagenr('#'))
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
839 call feedkeys("g\<Tab>", "xt")
21727
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
840 call assert_equal(2, tabpagenr())
21703
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
841 call feedkeys("\<C-Tab>", "xt")
21727
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
842 call assert_equal(2, tabpagenr())
21703
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
843 call feedkeys("\<C-W>g\<Tab>", "xt")
21727
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
844 call assert_equal(2, tabpagenr())
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
845 call assert_fails('tabnext #', 'E475:')
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
846 call assert_equal(2, tabpagenr())
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
847
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
848 " Test for :tabonly #
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
849 let wnum = win_getid()
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
850 $tabnew
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
851 tabonly #
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
852 call assert_equal(wnum, win_getid())
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
853 call assert_equal(1, tabpagenr('$'))
21703
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
854
21727
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
855 " Test for :tabmove #
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
856 tabnew
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
857 let wnum = win_getid()
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
858 tabnew
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
859 tabnew
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
860 tabnext 2
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
861 tabmove #
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
862 call assert_equal(4, tabpagenr())
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
863 call assert_equal(wnum, win_getid())
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
864
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
865 tabonly!
21703
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
866 endfunc
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 21552
diff changeset
867
28289
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
868 " Test for tabpage allocation failure
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
869 func Test_tabpage_alloc_failure()
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
870 call test_alloc_fail(GetAllocId('newtabpage_tvars'), 0, 0)
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
871 call assert_fails('tabnew', 'E342:')
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
872
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
873 call test_alloc_fail(GetAllocId('newtabpage_tvars'), 0, 0)
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
874 edit Xfile1
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
875 call assert_fails('tabedit Xfile2', 'E342:')
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
876 call assert_equal(1, winnr('$'))
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
877 call assert_equal(1, tabpagenr('$'))
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
878 call assert_equal('Xfile1', @%)
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
879
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
880 new
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
881 call test_alloc_fail(GetAllocId('newtabpage_tvars'), 0, 0)
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
882 call assert_fails('wincmd T', 'E342:')
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
883 bw!
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
884
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
885 call test_alloc_fail(GetAllocId('newtabpage_tvars'), 0, 0)
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
886 call assert_fails('tab split', 'E342:')
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
887 call assert_equal(2, winnr('$'))
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
888 call assert_equal(1, tabpagenr('$'))
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
889 endfunc
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
890
32062
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
891 " this was giving ml_get errors
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
892 func Test_tabpage_last_line()
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
893 enew
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
894 call setline(1, repeat(['a'], &lines + 5))
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
895 $
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
896 tabnew
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
897 call setline(1, repeat(['b'], &lines + 20))
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
898 $
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
899 tabNext
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
900 call assert_equal('a', getline('.'))
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
901
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
902 bwipe!
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
903 bwipe!
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
904 endfunc
8c9f63a518f5 patch 9.0.1362: ml_get error when going to another tab
Bram Moolenaar <Bram@vim.org>
parents: 30865
diff changeset
905
9906
1ed0cab95f9a commit https://github.com/vim/vim/commit/1381d791478ee77c8368b89a3d4954316bf839b5
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
906 " vim: shiftwidth=2 sts=2 expandtab