annotate src/testdir/test_window_cmd.vim @ 30665:fe0a18141c3c v9.0.0667

patch 9.0.0667: ml_get error when 'splitkeep' is "screen" Commit: https://github.com/vim/vim/commit/346823d3e5668b99d2c2fd920e7f215e21ad3ea7 Author: Luuk van Baal <luukvbaal@gmail.com> Date: Wed Oct 5 18:26:42 2022 +0100 patch 9.0.0667: ml_get error when 'splitkeep' is "screen" Problem: ml_get error when 'splitkeep' is "screen". (Marius Gedminas) Solution: Check the botline is not too large. (Luuk van Baal, closes #11293, closes #11292)
author Bram Moolenaar <Bram@vim.org>
date Wed, 05 Oct 2022 19:30:02 +0200
parents ac908e454519
children bff3fa5f4c74
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9102
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Tests for window cmd (:wincmd, :split, :vsplit, :resize and etc...)
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
3 source check.vim
30439
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
4 source screendump.vim
18253
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
5
9102
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6 func Test_window_cmd_ls0_with_split()
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 set ls=0
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 set splitbelow
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 split
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 quit
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 call assert_equal(0, &lines - &cmdheight - winheight(0))
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 new | only!
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 "
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 set splitbelow&vim
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 botright split
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 quit
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 call assert_equal(0, &lines - &cmdheight - winheight(0))
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 new | only!
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19 set ls&vim
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 endfunc
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 func Test_window_cmd_cmdwin_with_vsp()
13880
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
23 let efmt = 'Expected 0 but got %d (in ls=%d, %s window)'
9102
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 for v in range(0, 2)
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 exec "set ls=" . v
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26 vsplit
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27 call feedkeys("q:\<CR>")
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28 let ac = &lines - (&cmdheight + winheight(0) + !!v)
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 let emsg = printf(efmt, ac, v, 'left')
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 call assert_equal(0, ac, emsg)
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 wincmd w
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32 let ac = &lines - (&cmdheight + winheight(0) + !!v)
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33 let emsg = printf(efmt, ac, v, 'right')
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
34 call assert_equal(0, ac, emsg)
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
35 new | only!
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
36 endfor
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
37 set ls&vim
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
38 endfunc
0e90f3e13d88 commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
39
29694
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
40 func Test_cmdheight_not_changed()
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
41 set cmdheight=2
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
42 set winminheight=0
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
43 augroup Maximize
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
44 autocmd WinEnter * wincmd _
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
45 augroup END
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
46 split
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
47 tabnew
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
48 tabfirst
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
49 call assert_equal(2, &cmdheight)
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
50
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
51 tabonly!
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
52 only
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
53 set winminwidth& cmdheight&
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
54 augroup Maximize
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
55 au!
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
56 augroup END
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
57 augroup! Maximize
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
58 endfunc
cb4ddbe3caf3 patch 9.0.0187: command line height changes when maximizing window height
Bram Moolenaar <Bram@vim.org>
parents: 29546
diff changeset
59
21020
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
60 " Test for jumping to windows
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
61 func Test_window_jump()
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
62 new
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
63 " jumping to a window with a count greater than the max windows
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
64 exe "normal 4\<C-W>w"
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
65 call assert_equal(2, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
66 only
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
67 endfunc
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
68
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
69 func Test_window_cmd_wincmd_gf()
9349
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
70 let fname = 'test_gf.txt'
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
71 let swp_fname = '.' . fname . '.swp'
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
72 call writefile([], fname)
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
73 call writefile([], swp_fname)
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
74 function s:swap_exists()
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
75 let v:swapchoice = s:swap_choice
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
76 endfunc
17360
cb71b5e9e5d9 patch 8.1.1679: test using SwapExists autocommand file may fail
Bram Moolenaar <Bram@vim.org>
parents: 16690
diff changeset
77 " Remove the catch-all that runtest.vim adds
cb71b5e9e5d9 patch 8.1.1679: test using SwapExists autocommand file may fail
Bram Moolenaar <Bram@vim.org>
parents: 16690
diff changeset
78 au! SwapExists
9349
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
79 augroup test_window_cmd_wincmd_gf
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
80 autocmd!
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
81 exec "autocmd SwapExists " . fname . " call s:swap_exists()"
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
82 augroup END
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
83
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
84 call setline(1, fname)
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
85 " (E)dit anyway
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
86 let s:swap_choice = 'e'
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
87 wincmd gf
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
88 call assert_equal(2, tabpagenr())
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
89 call assert_equal(fname, bufname("%"))
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
90 quit!
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
91
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
92 " (Q)uit
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
93 let s:swap_choice = 'q'
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
94 wincmd gf
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
95 call assert_equal(1, tabpagenr())
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
96 call assert_notequal(fname, bufname("%"))
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
97 new | only!
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
98
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
99 call delete(fname)
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
100 call delete(swp_fname)
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
101 augroup! test_window_cmd_wincmd_gf
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
102 endfunc
b24900b73f90 commit https://github.com/vim/vim/commit/5d2ca0402954ff79b73d9c86cc16c8a6454b75a7
Christian Brabandt <cb@256bit.org>
parents: 9102
diff changeset
103
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
104 func Test_window_quit()
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
105 e Xa
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
106 split Xb
18035
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
107 call assert_equal(2, '$'->winnr())
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
108 call assert_equal('Xb', bufname(winbufnr(1)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
109 call assert_equal('Xa', bufname(winbufnr(2)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
110
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
111 wincmd q
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
112 call assert_equal(1, winnr('$'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
113 call assert_equal('Xa', bufname(winbufnr(1)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
114
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
115 bw Xa Xb
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
116 endfunc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
117
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
118 func Test_window_horizontal_split()
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
119 call assert_equal(1, winnr('$'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
120 3wincmd s
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
121 call assert_equal(2, winnr('$'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
122 call assert_equal(3, winheight(0))
18035
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
123 call assert_equal(winwidth(1), 2->winwidth())
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
124
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
125 call assert_fails('botright topleft wincmd s', 'E442:')
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
126 bw
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
127 endfunc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
128
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
129 func Test_window_vertical_split()
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
130 call assert_equal(1, winnr('$'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
131 3wincmd v
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
132 call assert_equal(2, winnr('$'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
133 call assert_equal(3, winwidth(0))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
134 call assert_equal(winheight(1), winheight(2))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
135
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
136 call assert_fails('botright topleft wincmd v', 'E442:')
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
137 bw
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
138 endfunc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
139
15006
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
140 " Test the ":wincmd ^" and "<C-W>^" commands.
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
141 func Test_window_split_edit_alternate()
15006
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
142
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
143 " Test for failure when the alternate buffer/file no longer exists.
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
144 edit Xfoo | %bw
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 22073
diff changeset
145 call assert_fails(':wincmd ^', 'E23:')
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
146
15006
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
147 " Test for the expected behavior when we have two named buffers.
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
148 edit Xfoo | edit Xbar
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
149 wincmd ^
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
150 call assert_equal('Xfoo', bufname(winbufnr(1)))
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
151 call assert_equal('Xbar', bufname(winbufnr(2)))
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
152 only
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
153
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
154 " Test for the expected behavior when the alternate buffer is not named.
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
155 enew | let l:nr1 = bufnr('%')
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
156 edit Xfoo | let l:nr2 = bufnr('%')
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
157 wincmd ^
15006
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
158 call assert_equal(l:nr1, winbufnr(1))
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
159 call assert_equal(l:nr2, winbufnr(2))
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
160 only
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
161
15012
55663ef68467 patch 8.1.0517: Test_window_split_edit_alternate() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15006
diff changeset
162 " FIXME: this currently fails on AppVeyor, but passes locally
55663ef68467 patch 8.1.0517: Test_window_split_edit_alternate() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15006
diff changeset
163 if !has('win32')
55663ef68467 patch 8.1.0517: Test_window_split_edit_alternate() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15006
diff changeset
164 " Test the Normal mode command.
55663ef68467 patch 8.1.0517: Test_window_split_edit_alternate() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15006
diff changeset
165 call feedkeys("\<C-W>\<C-^>", 'tx')
55663ef68467 patch 8.1.0517: Test_window_split_edit_alternate() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15006
diff changeset
166 call assert_equal(l:nr2, winbufnr(1))
55663ef68467 patch 8.1.0517: Test_window_split_edit_alternate() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15006
diff changeset
167 call assert_equal(l:nr1, winbufnr(2))
55663ef68467 patch 8.1.0517: Test_window_split_edit_alternate() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15006
diff changeset
168 endif
15006
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
169
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
170 %bw!
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
171 endfunc
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
172
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
173 " Test the ":[count]wincmd ^" and "[count]<C-W>^" commands.
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
174 func Test_window_split_edit_bufnr()
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
175
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
176 %bwipeout
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
177 let l:nr = bufnr('%') + 1
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 22073
diff changeset
178 call assert_fails(':execute "normal! ' . l:nr . '\<C-W>\<C-^>"', 'E92:')
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 22073
diff changeset
179 call assert_fails(':' . l:nr . 'wincmd ^', 'E16:')
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 22073
diff changeset
180 call assert_fails(':0wincmd ^', 'E16:')
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
181
15006
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
182 edit Xfoo | edit Xbar | edit Xbaz
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
183 let l:foo_nr = bufnr('Xfoo')
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
184 let l:bar_nr = bufnr('Xbar')
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
185 let l:baz_nr = bufnr('Xbaz')
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
186
15014
cc4c41448d77 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15012
diff changeset
187 " FIXME: this currently fails on AppVeyor, but passes locally
cc4c41448d77 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15012
diff changeset
188 if !has('win32')
cc4c41448d77 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15012
diff changeset
189 call feedkeys(l:foo_nr . "\<C-W>\<C-^>", 'tx')
cc4c41448d77 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15012
diff changeset
190 call assert_equal('Xfoo', bufname(winbufnr(1)))
cc4c41448d77 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15012
diff changeset
191 call assert_equal('Xbaz', bufname(winbufnr(2)))
cc4c41448d77 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15012
diff changeset
192 only
15006
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
193
15014
cc4c41448d77 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15012
diff changeset
194 call feedkeys(l:bar_nr . "\<C-W>\<C-^>", 'tx')
cc4c41448d77 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15012
diff changeset
195 call assert_equal('Xbar', bufname(winbufnr(1)))
cc4c41448d77 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15012
diff changeset
196 call assert_equal('Xfoo', bufname(winbufnr(2)))
cc4c41448d77 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15012
diff changeset
197 only
15006
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
198
15014
cc4c41448d77 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15012
diff changeset
199 execute l:baz_nr . 'wincmd ^'
cc4c41448d77 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15012
diff changeset
200 call assert_equal('Xbaz', bufname(winbufnr(1)))
cc4c41448d77 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15012
diff changeset
201 call assert_equal('Xbar', bufname(winbufnr(2)))
cc4c41448d77 patch 8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Bram Moolenaar <Bram@vim.org>
parents: 15012
diff changeset
202 endif
15006
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
203
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
204 %bw!
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
205 endfunc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
206
19740
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
207 func Test_window_split_no_room()
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
208 " N horizontal windows need >= 2*N + 1 lines:
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
209 " - 1 line + 1 status line in each window
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
210 " - 1 Ex command line
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
211 "
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
212 " 2*N + 1 <= &lines
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
213 " N <= (lines - 1)/2
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
214 "
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
215 " Beyond that number of windows, E36: Not enough room is expected.
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
216 let hor_win_count = (&lines - 1)/2
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
217 let hor_split_count = hor_win_count - 1
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
218 for s in range(1, hor_split_count) | split | endfor
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
219 call assert_fails('split', 'E36:')
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
220
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
221 " N vertical windows need >= 2*(N - 1) + 1 columns:
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
222 " - 1 column + 1 separator for each window (except last window)
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
223 " - 1 column for the last window which does not have separator
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
224 "
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
225 " 2*(N - 1) + 1 <= &columns
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
226 " 2*N - 1 <= &columns
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
227 " N <= (&columns + 1)/2
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
228 let ver_win_count = (&columns + 1)/2
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
229 let ver_split_count = ver_win_count - 1
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
230 for s in range(1, ver_split_count) | vsplit | endfor
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
231 call assert_fails('vsplit', 'E36:')
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
232
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
233 %bw!
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
234 endfunc
a653d1a165ef patch 8.2.0426: some errors were not tested for
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
235
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
236 func Test_window_exchange()
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
237 e Xa
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
238
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
239 " Nothing happens with window exchange when there is 1 window
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
240 wincmd x
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
241 call assert_equal(1, winnr('$'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
242
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
243 split Xb
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
244 split Xc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
245
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
246 call assert_equal('Xc', bufname(winbufnr(1)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
247 call assert_equal('Xb', bufname(winbufnr(2)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
248 call assert_equal('Xa', bufname(winbufnr(3)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
249
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
250 " Exchange current window 1 with window 3
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
251 3wincmd x
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
252 call assert_equal('Xa', bufname(winbufnr(1)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
253 call assert_equal('Xb', bufname(winbufnr(2)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
254 call assert_equal('Xc', bufname(winbufnr(3)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
255
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
256 " Exchange window with next when at the top window
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
257 wincmd x
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
258 call assert_equal('Xb', bufname(winbufnr(1)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
259 call assert_equal('Xa', bufname(winbufnr(2)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
260 call assert_equal('Xc', bufname(winbufnr(3)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
261
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
262 " Exchange window with next when at the middle window
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
263 wincmd j
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
264 wincmd x
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
265 call assert_equal('Xb', bufname(winbufnr(1)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
266 call assert_equal('Xc', bufname(winbufnr(2)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
267 call assert_equal('Xa', bufname(winbufnr(3)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
268
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
269 " Exchange window with next when at the bottom window.
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
270 " When there is no next window, it exchanges with the previous window.
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
271 wincmd j
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
272 wincmd x
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
273 call assert_equal('Xb', bufname(winbufnr(1)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
274 call assert_equal('Xa', bufname(winbufnr(2)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
275 call assert_equal('Xc', bufname(winbufnr(3)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
276
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
277 bw Xa Xb Xc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
278 endfunc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
279
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
280 func Test_window_rotate()
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
281 e Xa
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
282 split Xb
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
283 split Xc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
284 call assert_equal('Xc', bufname(winbufnr(1)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
285 call assert_equal('Xb', bufname(winbufnr(2)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
286 call assert_equal('Xa', bufname(winbufnr(3)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
287
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
288 " Rotate downwards
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
289 wincmd r
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
290 call assert_equal('Xa', bufname(winbufnr(1)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
291 call assert_equal('Xc', bufname(winbufnr(2)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
292 call assert_equal('Xb', bufname(winbufnr(3)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
293
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
294 2wincmd r
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
295 call assert_equal('Xc', bufname(winbufnr(1)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
296 call assert_equal('Xb', bufname(winbufnr(2)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
297 call assert_equal('Xa', bufname(winbufnr(3)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
298
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
299 " Rotate upwards
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
300 wincmd R
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
301 call assert_equal('Xb', bufname(winbufnr(1)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
302 call assert_equal('Xa', bufname(winbufnr(2)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
303 call assert_equal('Xc', bufname(winbufnr(3)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
304
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
305 2wincmd R
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
306 call assert_equal('Xc', bufname(winbufnr(1)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
307 call assert_equal('Xb', bufname(winbufnr(2)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
308 call assert_equal('Xa', bufname(winbufnr(3)))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
309
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
310 bot vsplit
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
311 call assert_fails('wincmd R', 'E443:')
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
312
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
313 bw Xa Xb Xc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
314 endfunc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
315
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
316 func Test_window_height()
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
317 e Xa
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
318 split Xb
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
319
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
320 let [wh1, wh2] = [winheight(1), winheight(2)]
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
321 " Active window (1) should have the same height or 1 more
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
322 " than the other window.
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
323 call assert_inrange(wh2, wh2 + 1, wh1)
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
324
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
325 wincmd -
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
326 call assert_equal(wh1 - 1, winheight(1))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
327 call assert_equal(wh2 + 1, winheight(2))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
328
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
329 wincmd +
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
330 call assert_equal(wh1, winheight(1))
18035
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
331 call assert_equal(wh2, 2->winheight())
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
332
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
333 2wincmd _
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
334 call assert_equal(2, winheight(1))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
335 call assert_equal(wh1 + wh2 - 2, winheight(2))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
336
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
337 wincmd =
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
338 call assert_equal(wh1, winheight(1))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
339 call assert_equal(wh2, winheight(2))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
340
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
341 2wincmd _
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
342 set winfixheight
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
343 split Xc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
344 let [wh1, wh2, wh3] = [winheight(1), winheight(2), winheight(3)]
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
345 call assert_equal(2, winheight(2))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
346 call assert_inrange(wh3, wh3 + 1, wh1)
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
347 3wincmd +
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
348 call assert_equal(2, winheight(2))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
349 call assert_equal(wh1 + 3, winheight(1))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
350 call assert_equal(wh3 - 3, winheight(3))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
351 wincmd =
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
352 call assert_equal(2, winheight(2))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
353 call assert_equal(wh1, winheight(1))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
354 call assert_equal(wh3, winheight(3))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
355
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
356 wincmd j
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
357 set winfixheight&
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
358
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
359 wincmd =
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
360 let [wh1, wh2, wh3] = [winheight(1), winheight(2), winheight(3)]
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
361 " Current window (2) should have the same height or 1 more
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
362 " than the other windows.
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
363 call assert_inrange(wh1, wh1 + 1, wh2)
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
364 call assert_inrange(wh3, wh3 + 1, wh2)
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
365
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
366 bw Xa Xb Xc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
367 endfunc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
368
30009
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
369 func Test_wincmd_equal()
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
370 edit Xone
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
371 below split Xtwo
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
372 rightbelow vsplit Xthree
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
373 call assert_equal('Xone', bufname(winbufnr(1)))
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
374 call assert_equal('Xtwo', bufname(winbufnr(2)))
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
375 call assert_equal('Xthree', bufname(winbufnr(3)))
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
376
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
377 " Xone and Xtwo should be about the same height
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
378 let [wh1, wh2] = [winheight(1), winheight(2)]
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
379 call assert_inrange(wh1 - 1, wh1 + 1, wh2)
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
380 " Xtwo and Xthree should be about the same width
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
381 let [ww2, ww3] = [winwidth(2), winwidth(3)]
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
382 call assert_inrange(ww2 - 1, ww2 + 1, ww3)
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
383
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
384 1wincmd w
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
385 10wincmd _
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
386 2wincmd w
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
387 20wincmd |
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
388 call assert_equal(10, winheight(1))
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
389 call assert_equal(20, winwidth(2))
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
390
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
391 " equalizing horizontally doesn't change the heights
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
392 hor wincmd =
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
393 call assert_equal(10, winheight(1))
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
394 let [ww2, ww3] = [winwidth(2), winwidth(3)]
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
395 call assert_inrange(ww2 - 1, ww2 + 1, ww3)
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
396
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
397 2wincmd w
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
398 20wincmd |
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
399 call assert_equal(20, winwidth(2))
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
400 " equalizing vertically doesn't change the widths
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
401 vert wincmd =
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
402 call assert_equal(20, winwidth(2))
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
403 let [wh1, wh2] = [winheight(1), winheight(2)]
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
404 call assert_inrange(wh1 - 1, wh1 + 1, wh2)
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
405
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
406 bwipe Xone Xtwo Xthree
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
407 endfunc
b97a870a7c63 patch 9.0.0342: ":wincmd =" equalizes in two directions
Bram Moolenaar <Bram@vim.org>
parents: 30005
diff changeset
408
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
409 func Test_window_width()
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
410 e Xa
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
411 vsplit Xb
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
412
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
413 let [ww1, ww2] = [winwidth(1), winwidth(2)]
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
414 " Active window (1) should have the same width or 1 more
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
415 " than the other window.
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
416 call assert_inrange(ww2, ww2 + 1, ww1)
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
417
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
418 wincmd <
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
419 call assert_equal(ww1 - 1, winwidth(1))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
420 call assert_equal(ww2 + 1, winwidth(2))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
421
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
422 wincmd >
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
423 call assert_equal(ww1, winwidth(1))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
424 call assert_equal(ww2, winwidth(2))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
425
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
426 2wincmd |
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
427 call assert_equal(2, winwidth(1))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
428 call assert_equal(ww1 + ww2 - 2, winwidth(2))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
429
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
430 wincmd =
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
431 call assert_equal(ww1, winwidth(1))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
432 call assert_equal(ww2, winwidth(2))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
433
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
434 2wincmd |
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
435 set winfixwidth
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
436 vsplit Xc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
437 let [ww1, ww2, ww3] = [winwidth(1), winwidth(2), winwidth(3)]
11207
e6140f3d2be7 patch 8.0.0490: vertical split makes 'winfixwidth' window smaller
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
438 call assert_equal(2, winwidth(2))
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
439 call assert_inrange(ww3, ww3 + 1, ww1)
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
440 3wincmd >
11207
e6140f3d2be7 patch 8.0.0490: vertical split makes 'winfixwidth' window smaller
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
441 call assert_equal(2, winwidth(2))
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
442 call assert_equal(ww1 + 3, winwidth(1))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
443 call assert_equal(ww3 - 3, winwidth(3))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
444 wincmd =
11207
e6140f3d2be7 patch 8.0.0490: vertical split makes 'winfixwidth' window smaller
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
445 call assert_equal(2, winwidth(2))
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
446 call assert_equal(ww1, winwidth(1))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
447 call assert_equal(ww3, winwidth(3))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
448
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
449 wincmd l
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
450 set winfixwidth&
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
451
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
452 wincmd =
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
453 let [ww1, ww2, ww3] = [winwidth(1), winwidth(2), winwidth(3)]
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
454 " Current window (2) should have the same width or 1 more
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
455 " than the other windows.
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
456 call assert_inrange(ww1, ww1 + 1, ww2)
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
457 call assert_inrange(ww3, ww3 + 1, ww2)
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
458
24882
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24180
diff changeset
459 " when the current window width is less than the new 'winwidth', the current
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24180
diff changeset
460 " window width should be increased.
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24180
diff changeset
461 enew | only
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24180
diff changeset
462 split
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24180
diff changeset
463 10vnew
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24180
diff changeset
464 set winwidth=15
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24180
diff changeset
465 call assert_equal(15, winwidth(0))
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24180
diff changeset
466
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24180
diff changeset
467 %bw!
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
468 endfunc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
469
11591
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
470 func Test_equalalways_on_close()
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
471 set equalalways
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
472 vsplit
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
473 windo split
15006
1fd8e32532f7 patch 8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Bram Moolenaar <Bram@vim.org>
parents: 13880
diff changeset
474 split
11591
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
475 wincmd J
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
476 " now we have a frame top-left with two windows, a frame top-right with two
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
477 " windows and a frame at the bottom, full-width.
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
478 let height_1 = winheight(1)
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
479 let height_2 = winheight(2)
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
480 let height_3 = winheight(3)
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
481 let height_4 = winheight(4)
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
482 " closing the bottom window causes all windows to be resized.
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
483 close
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
484 call assert_notequal(height_1, winheight(1))
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
485 call assert_notequal(height_2, winheight(2))
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
486 call assert_notequal(height_3, winheight(3))
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
487 call assert_notequal(height_4, winheight(4))
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
488 call assert_equal(winheight(1), winheight(3))
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
489 call assert_equal(winheight(2), winheight(4))
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
490
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
491 1wincmd w
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
492 split
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
493 4wincmd w
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
494 resize + 5
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
495 " left column has three windows, equalized heights.
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
496 " right column has two windows, top one a bit higher
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
497 let height_1 = winheight(1)
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
498 let height_2 = winheight(2)
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
499 let height_4 = winheight(4)
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
500 let height_5 = winheight(5)
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
501 3wincmd w
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
502 " closing window in left column equalizes heights in left column but not in
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
503 " the right column
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
504 close
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
505 call assert_notequal(height_1, winheight(1))
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
506 call assert_notequal(height_2, winheight(2))
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
507 call assert_equal(height_4, winheight(3))
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
508 call assert_equal(height_5, winheight(4))
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
509
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
510 only
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
511 set equalalways&
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
512 endfunc
d06a3db9b651 patch 8.0.0678: closing a window does not trigger resizing
Christian Brabandt <cb@256bit.org>
parents: 11207
diff changeset
513
12977
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12019
diff changeset
514 func Test_win_screenpos()
18767
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18253
diff changeset
515 CheckFeature quickfix
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18253
diff changeset
516
12977
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12019
diff changeset
517 call assert_equal(1, winnr('$'))
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12019
diff changeset
518 split
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12019
diff changeset
519 vsplit
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12019
diff changeset
520 10wincmd _
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12019
diff changeset
521 30wincmd |
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12019
diff changeset
522 call assert_equal([1, 1], win_screenpos(1))
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12019
diff changeset
523 call assert_equal([1, 32], win_screenpos(2))
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12019
diff changeset
524 call assert_equal([12, 1], win_screenpos(3))
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12019
diff changeset
525 call assert_equal([0, 0], win_screenpos(4))
20178
2fb397573541 patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents: 20120
diff changeset
526 call assert_fails('let l = win_screenpos([])', 'E745:')
12977
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12019
diff changeset
527 only
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12019
diff changeset
528 endfunc
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12019
diff changeset
529
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
530 func Test_window_jump_tag()
18767
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18253
diff changeset
531 CheckFeature quickfix
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18253
diff changeset
532
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
533 help
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
534 /iccf
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
535 call assert_match('^|iccf|', getline('.'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
536 call assert_equal(2, winnr('$'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
537 2wincmd }
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
538 call assert_equal(3, winnr('$'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
539 call assert_match('^|iccf|', getline('.'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
540 wincmd k
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
541 call assert_match('\*iccf\*', getline('.'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
542 call assert_equal(2, winheight(0))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
543
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
544 wincmd z
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
545 set previewheight=4
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
546 help
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
547 /bugs
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
548 wincmd }
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
549 wincmd k
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
550 call assert_match('\*bugs\*', getline('.'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
551 call assert_equal(4, winheight(0))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
552 set previewheight&
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
553
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
554 %bw!
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
555 endfunc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
556
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
557 func Test_window_newtab()
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
558 e Xa
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
559
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
560 call assert_equal(1, tabpagenr('$'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
561 call assert_equal("\nAlready only one window", execute('wincmd T'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
562
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
563 split Xb
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
564 split Xc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
565
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
566 wincmd T
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
567 call assert_equal(2, tabpagenr('$'))
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
568 call assert_equal(['Xb', 'Xa'], map(tabpagebuflist(1), 'bufname(v:val)'))
18031
8a2fb21c23c0 patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17746
diff changeset
569 call assert_equal(['Xc' ], map(2->tabpagebuflist(), 'bufname(v:val)'))
19783
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19752
diff changeset
570 call assert_equal(['Xc' ], map(tabpagebuflist(), 'bufname(v:val)'))
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
571
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
572 %bw!
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
573 endfunc
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 11193
diff changeset
574
11193
75ccc8a15a51 patch 8.0.0483: illegal memory access when using :all
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
575 func Test_next_split_all()
75ccc8a15a51 patch 8.0.0483: illegal memory access when using :all
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
576 " This was causing an illegal memory access.
75ccc8a15a51 patch 8.0.0483: illegal memory access when using :all
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
577 n x
75ccc8a15a51 patch 8.0.0483: illegal memory access when using :all
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
578 norm axxx
75ccc8a15a51 patch 8.0.0483: illegal memory access when using :all
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
579 split
75ccc8a15a51 patch 8.0.0483: illegal memory access when using :all
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
580 split
75ccc8a15a51 patch 8.0.0483: illegal memory access when using :all
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
581 s/x
75ccc8a15a51 patch 8.0.0483: illegal memory access when using :all
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
582 s/x
75ccc8a15a51 patch 8.0.0483: illegal memory access when using :all
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
583 all
75ccc8a15a51 patch 8.0.0483: illegal memory access when using :all
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
584 bwipe!
75ccc8a15a51 patch 8.0.0483: illegal memory access when using :all
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
585 endfunc
75ccc8a15a51 patch 8.0.0483: illegal memory access when using :all
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
586
12019
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
587 " Tests for adjusting window and contents
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
588 func GetScreenStr(row)
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
589 let str = ""
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
590 for c in range(1,3)
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
591 let str .= nr2char(screenchar(a:row, c))
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
592 endfor
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
593 return str
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
594 endfunc
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
595
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
596 func Test_window_contents()
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
597 enew! | only | new
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
598 call setline(1, range(1,256))
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
599
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
600 exe "norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
601 redraw
13880
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
602 let s3 = GetScreenStr(1)
12019
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
603 wincmd p
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
604 call assert_equal(1, line("w0"))
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
605 call assert_equal('1 ', s3)
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
606
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
607 exe "norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
608 redraw
13880
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
609 let s3 = GetScreenStr(1)
12019
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
610 wincmd p
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
611 call assert_equal(50, line("w0"))
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
612 call assert_equal('50 ', s3)
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
613
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
614 exe "norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
615 redraw
13880
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
616 let s3 = GetScreenStr(1)
12019
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
617 wincmd p
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
618 call assert_equal(59, line("w0"))
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
619 call assert_equal('59 ', s3)
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
620
19724
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
621 %d
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
622 call setline(1, ['one', 'two', 'three'])
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
623 call assert_equal(1, line('w0'))
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
624 call assert_equal(3, line('w$'))
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
625
12019
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
626 bwipeout!
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
627 call test_garbagecollect_now()
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
628 endfunc
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11591
diff changeset
629
13072
50aa6da392ce patch 8.0.1411: reading invalid memory with CTRL-W :
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
630 func Test_window_colon_command()
50aa6da392ce patch 8.0.1411: reading invalid memory with CTRL-W :
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
631 " This was reading invalid memory.
50aa6da392ce patch 8.0.1411: reading invalid memory with CTRL-W :
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
632 exe "norm! v\<C-W>:\<C-U>echo v:version"
50aa6da392ce patch 8.0.1411: reading invalid memory with CTRL-W :
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
633 endfunc
50aa6da392ce patch 8.0.1411: reading invalid memory with CTRL-W :
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
634
13144
20fb8c711050 patch 8.0.1446: acessing freed memory after window command in auto command
Christian Brabandt <cb@256bit.org>
parents: 13072
diff changeset
635 func Test_access_freed_mem()
17516
711db62c8aca patch 8.1.1756: autocommand that splits window messes up window layout
Bram Moolenaar <Bram@vim.org>
parents: 17360
diff changeset
636 call assert_equal(&columns, winwidth(0))
23758
97296182d336 patch 8.2.2420: too many problems with using all autocommand events
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
637 " This was accessing freed memory (but with what events?)
97296182d336 patch 8.2.2420: too many problems with using all autocommand events
Bram Moolenaar <Bram@vim.org>
parents: 23748
diff changeset
638 au BufEnter,BufLeave,WinEnter,WinLeave 0 vs xxx
13144
20fb8c711050 patch 8.0.1446: acessing freed memory after window command in auto command
Christian Brabandt <cb@256bit.org>
parents: 13072
diff changeset
639 arg 0
20fb8c711050 patch 8.0.1446: acessing freed memory after window command in auto command
Christian Brabandt <cb@256bit.org>
parents: 13072
diff changeset
640 argadd
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
641 call assert_fails("all", "E242:")
13144
20fb8c711050 patch 8.0.1446: acessing freed memory after window command in auto command
Christian Brabandt <cb@256bit.org>
parents: 13072
diff changeset
642 au!
20fb8c711050 patch 8.0.1446: acessing freed memory after window command in auto command
Christian Brabandt <cb@256bit.org>
parents: 13072
diff changeset
643 bwipe xxx
17516
711db62c8aca patch 8.1.1756: autocommand that splits window messes up window layout
Bram Moolenaar <Bram@vim.org>
parents: 17360
diff changeset
644 call assert_equal(&columns, winwidth(0))
13144
20fb8c711050 patch 8.0.1446: acessing freed memory after window command in auto command
Christian Brabandt <cb@256bit.org>
parents: 13072
diff changeset
645 endfunc
20fb8c711050 patch 8.0.1446: acessing freed memory after window command in auto command
Christian Brabandt <cb@256bit.org>
parents: 13072
diff changeset
646
18253
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
647 func Test_insert_cleared_on_switch_to_term()
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
648 CheckFeature terminal
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
649
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
650 set showmode
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
651 terminal
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
652 wincmd p
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
653
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
654 call feedkeys("i\<C-O>", 'ntx')
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
655 redraw
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
656
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
657 " The "-- (insert) --" indicator should be visible.
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
658 let chars = map(range(1, &columns), 'nr2char(screenchar(&lines, v:val))')
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
659 let str = trim(join(chars, ''))
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
660 call assert_equal('-- (insert) --', str)
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
661
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
662 call feedkeys("\<C-W>p", 'ntx')
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
663 redraw
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
664
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
665 " The "-- (insert) --" indicator should have been cleared.
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
666 let chars = map(range(1, &columns), 'nr2char(screenchar(&lines, v:val))')
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
667 let str = trim(join(chars, ''))
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
668 call assert_equal('', str)
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
669
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
670 set showmode&
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
671 %bw!
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
672 endfunc
783f796a1426 patch 8.1.2121: mode is not updated when switching to terminal
Bram Moolenaar <Bram@vim.org>
parents: 18049
diff changeset
673
13666
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
674 func Test_visual_cleared_after_window_split()
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
675 new | only!
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
676 let smd_save = &showmode
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
677 set showmode
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
678 let ls_save = &laststatus
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
679 set laststatus=1
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
680 call setline(1, ['a', 'b', 'c', 'd', ''])
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
681 norm! G
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
682 exe "norm! kkvk"
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
683 redraw
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
684 exe "norm! \<C-W>v"
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
685 redraw
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
686 " check if '-- VISUAL --' disappeared from command line
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
687 let columns = range(1, &columns)
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
688 let cmdlinechars = map(columns, 'nr2char(screenchar(&lines, v:val))')
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
689 let cmdline = join(cmdlinechars, '')
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
690 let cmdline_ltrim = substitute(cmdline, '^\s*', "", "")
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
691 let mode_shown = substitute(cmdline_ltrim, '\s*$', "", "")
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
692 call assert_equal('', mode_shown)
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
693 let &showmode = smd_save
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
694 let &laststatus = ls_save
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
695 bwipe!
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
696 endfunc
57da3d873f20 patch 8.0.1705: when making a vertical split the mode message isn't updated
Christian Brabandt <cb@256bit.org>
parents: 13144
diff changeset
697
13880
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
698 func Test_winrestcmd()
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
699 2split
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
700 3vsplit
24180
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
701 let restcmd = winrestcmd()
13880
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
702 call assert_equal(2, winheight(0))
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
703 call assert_equal(3, winwidth(0))
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
704 wincmd =
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
705 call assert_notequal(2, winheight(0))
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
706 call assert_notequal(3, winwidth(0))
24180
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
707 exe restcmd
13880
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
708 call assert_equal(2, winheight(0))
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
709 call assert_equal(3, winwidth(0))
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
710 only
24180
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
711
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
712 wincmd v
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
713 wincmd s
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
714 wincmd v
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
715 redraw
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
716 let restcmd = winrestcmd()
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
717 wincmd _
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
718 wincmd |
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
719 exe restcmd
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
720 redraw
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
721 call assert_equal(restcmd, winrestcmd())
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
722
3c165c7432ff patch 8.2.2631: commands from winrestcmd() do not always work properly
Bram Moolenaar <Bram@vim.org>
parents: 23758
diff changeset
723 only
13880
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
724 endfunc
60e80884994d patch 8.0.1811: no test for winrestcmd()
Christian Brabandt <cb@256bit.org>
parents: 13666
diff changeset
725
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 15241
diff changeset
726 func Fun_RenewFile()
17746
a4e488a6655c patch 8.1.1870: using :pedit from a help file sets help filetype
Bram Moolenaar <Bram@vim.org>
parents: 17516
diff changeset
727 " Need to wait a bit for the timestamp to be older.
18031
8a2fb21c23c0 patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17746
diff changeset
728 let old_ftime = getftime("tmp.txt")
8a2fb21c23c0 patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17746
diff changeset
729 while getftime("tmp.txt") == old_ftime
8a2fb21c23c0 patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17746
diff changeset
730 sleep 100m
8a2fb21c23c0 patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17746
diff changeset
731 silent execute '!echo "1" > tmp.txt'
8a2fb21c23c0 patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17746
diff changeset
732 endwhile
15241
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
733 sp
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
734 wincmd p
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
735 edit! tmp.txt
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 15241
diff changeset
736 endfunc
15241
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
737
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
738 func Test_window_prevwin()
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
739 " Can we make this work on MS-Windows?
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
740 CheckUnix
15241
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
741
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
742 set hidden autoread
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
743 call writefile(['2'], 'tmp.txt')
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
744 new tmp.txt
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
745 q
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
746 call Fun_RenewFile()
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
747 call assert_equal(2, winnr())
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
748 wincmd p
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
749 call assert_equal(1, winnr())
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
750 wincmd p
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
751 q
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
752 call Fun_RenewFile()
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
753 call assert_equal(2, winnr())
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
754 wincmd p
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
755 call assert_equal(1, winnr())
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
756 wincmd p
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
757 " reset
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
758 q
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
759 call delete('tmp.txt')
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
760 set hidden&vim autoread&vim
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
761 delfunc Fun_RenewFile
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
762 endfunc
83ff85896a14 patch 8.1.0630: "wincmd p" does not work after using an autocmd window
Bram Moolenaar <Bram@vim.org>
parents: 15014
diff changeset
763
15977
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
764 func Test_relative_cursor_position_in_one_line_window()
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
765 new
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
766 only
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
767 call setline(1, range(1, 10000))
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
768 normal 50%
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
769 let lnum = getcurpos()[1]
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
770 split
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
771 split
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
772 " make third window take as many lines as possible, other windows will
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
773 " become one line
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
774 3wincmd w
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
775 for i in range(1, &lines - 6)
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
776 wincmd +
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
777 redraw!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
778 endfor
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
779
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
780 " first and second window should show cursor line
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
781 let wininfo = getwininfo()
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
782 call assert_equal(lnum, wininfo[0].topline)
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
783 call assert_equal(lnum, wininfo[1].topline)
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
784
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
785 only!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
786 bwipe!
29994
86eb4aba16c3 patch 9.0.0335: checks for Dictionary argument often give a vague error
Bram Moolenaar <Bram@vim.org>
parents: 29694
diff changeset
787 call assert_fails('call winrestview(test_null_dict())', 'E1297:')
15977
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
788 endfunc
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
789
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
790 func Test_relative_cursor_position_after_move_and_resize()
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
791 let so_save = &so
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
792 set so=0
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
793 enew
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
794 call setline(1, range(1, 10000))
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
795 normal 50%
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
796 split
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
797 1wincmd w
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
798 " Move cursor to first line in window
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
799 normal H
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
800 redraw!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
801 " Reduce window height to two lines
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
802 let height = winheight(0)
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
803 while winheight(0) > 2
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
804 wincmd -
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
805 redraw!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
806 endwhile
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
807 " move cursor to second/last line in window
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
808 normal j
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
809 " restore previous height
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
810 while winheight(0) < height
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
811 wincmd +
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
812 redraw!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
813 endwhile
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
814 " make window two lines again
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
815 while winheight(0) > 2
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
816 wincmd -
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
817 redraw!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
818 endwhile
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
819
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
820 " cursor should be at bottom line
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
821 let info = getwininfo(win_getid())[0]
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
822 call assert_equal(info.topline + 1, getcurpos()[1])
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
823
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
824 only!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
825 bwipe!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
826 let &so = so_save
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
827 endfunc
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
828
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
829 func Test_relative_cursor_position_after_resize()
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
830 let so_save = &so
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
831 set so=0
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
832 enew
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
833 call setline(1, range(1, 10000))
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
834 normal 50%
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
835 split
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
836 1wincmd w
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
837 let winid1 = win_getid()
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
838 let info = getwininfo(winid1)[0]
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
839 " Move cursor to second line in window
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
840 exe "normal " . (info.topline + 1) . "G"
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
841 redraw!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
842 let lnum = getcurpos()[1]
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
843
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
844 " Make the window only two lines high, cursor should end up in top line
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
845 2wincmd w
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
846 exe (info.height - 2) . "wincmd +"
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
847 redraw!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
848 let info = getwininfo(winid1)[0]
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
849 call assert_equal(lnum, info.topline)
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
850
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
851 only!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
852 bwipe!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
853 let &so = so_save
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
854 endfunc
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
855
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
856 func Test_relative_cursor_second_line_after_resize()
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
857 let so_save = &so
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
858 set so=0
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
859 enew
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
860 call setline(1, range(1, 10000))
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
861 normal 50%
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
862 split
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
863 1wincmd w
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
864 let winid1 = win_getid()
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
865 let info = getwininfo(winid1)[0]
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
866
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
867 " Make the window only two lines high
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
868 2wincmd _
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
869
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
870 " Move cursor to second line in window
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
871 normal H
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
872 normal j
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
873
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
874 " Make window size bigger, then back to 2 lines
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
875 for i in range(1, 10)
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
876 wincmd +
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
877 redraw!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
878 endfor
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
879 for i in range(1, 10)
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
880 wincmd -
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
881 redraw!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
882 endfor
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
883
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
884 " cursor should end up in bottom line
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
885 let info = getwininfo(winid1)[0]
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
886 call assert_equal(info.topline + 1, getcurpos()[1])
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
887
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
888 only!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
889 bwipe!
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
890 let &so = so_save
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
891 endfunc
7fbdceabad64 patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
892
16650
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
893 func Test_split_noscroll()
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
894 let so_save = &so
16690
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
895 enew
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
896 call setline(1, range(1, 8))
16650
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
897 normal 100%
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
898 split
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
899
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
900 1wincmd w
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
901 let winid1 = win_getid()
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
902 let info1 = getwininfo(winid1)[0]
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
903
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
904 2wincmd w
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
905 let winid2 = win_getid()
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
906 let info2 = getwininfo(winid2)[0]
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
907
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
908 call assert_equal(1, info1.topline)
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
909 call assert_equal(1, info2.topline)
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
910
16690
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
911 " window that fits all lines by itself, but not when split: closing other
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
912 " window should restore fraction.
16650
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
913 only!
16690
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
914 call setline(1, range(1, &lines - 10))
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
915 exe &lines / 4
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
916 let winid1 = win_getid()
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
917 let info1 = getwininfo(winid1)[0]
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
918 call assert_equal(1, info1.topline)
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
919 new
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
920 redraw
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
921 close
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
922 let info1 = getwininfo(winid1)[0]
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
923 call assert_equal(1, info1.topline)
4e3c4e8e465c patch 8.1.1347: fractional scroll position not restored after closing window
Bram Moolenaar <Bram@vim.org>
parents: 16650
diff changeset
924
16650
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
925 bwipe!
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
926 let &so = so_save
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
927 endfunc
06fd0eaada01 patch 8.1.1327: unnecessary scroll after horizontal split
Bram Moolenaar <Bram@vim.org>
parents: 16271
diff changeset
928
16271
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
929 " Tests for the winnr() function
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
930 func Test_winnr()
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
931 only | tabonly
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
932 call assert_equal(1, winnr('j'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
933 call assert_equal(1, winnr('k'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
934 call assert_equal(1, winnr('h'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
935 call assert_equal(1, winnr('l'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
936
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
937 " create a set of horizontally and vertically split windows
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
938 leftabove new | wincmd p
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
939 leftabove new | wincmd p
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
940 rightbelow new | wincmd p
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
941 rightbelow new | wincmd p
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
942 leftabove vnew | wincmd p
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
943 leftabove vnew | wincmd p
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
944 rightbelow vnew | wincmd p
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
945 rightbelow vnew | wincmd p
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
946
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
947 call assert_equal(8, winnr('j'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
948 call assert_equal(2, winnr('k'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
949 call assert_equal(4, winnr('h'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
950 call assert_equal(6, winnr('l'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
951 call assert_equal(9, winnr('2j'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
952 call assert_equal(1, winnr('2k'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
953 call assert_equal(3, winnr('2h'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
954 call assert_equal(7, winnr('2l'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
955
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
956 " Error cases
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
957 call assert_fails("echo winnr('0.2k')", 'E15:')
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
958 call assert_equal(2, winnr('-2k'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
959 call assert_fails("echo winnr('-2xj')", 'E15:')
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
960 call assert_fails("echo winnr('j2j')", 'E15:')
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
961 call assert_fails("echo winnr('ll')", 'E15:')
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
962 call assert_fails("echo winnr('5')", 'E15:')
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
963 call assert_equal(4, winnr('0h'))
20178
2fb397573541 patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents: 20120
diff changeset
964 call assert_fails("let w = winnr([])", 'E730:')
2fb397573541 patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents: 20120
diff changeset
965 call assert_equal('unknown', win_gettype(-1))
2fb397573541 patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents: 20120
diff changeset
966 call assert_equal(-1, winheight(-1))
2fb397573541 patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents: 20120
diff changeset
967 call assert_equal(-1, winwidth(-1))
16271
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
968
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
969 tabnew
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
970 call assert_equal(8, tabpagewinnr(1, 'j'))
18031
8a2fb21c23c0 patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17746
diff changeset
971 call assert_equal(2, 1->tabpagewinnr('k'))
16271
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
972 call assert_equal(4, tabpagewinnr(1, 'h'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
973 call assert_equal(6, tabpagewinnr(1, 'l'))
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
974
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
975 only | tabonly
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
976 endfunc
243cdc183ec9 patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents: 15977
diff changeset
977
18035
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
978 func Test_winrestview()
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
979 split runtest.vim
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
980 normal 50%
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
981 let view = winsaveview()
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
982 close
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
983 split runtest.vim
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
984 eval view->winrestview()
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
985 call assert_equal(view, winsaveview())
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
986
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
987 bwipe!
29994
86eb4aba16c3 patch 9.0.0335: checks for Dictionary argument often give a vague error
Bram Moolenaar <Bram@vim.org>
parents: 29694
diff changeset
988 call assert_fails('call winrestview(test_null_dict())', 'E1297:')
18035
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
989 endfunc
11dca9732a48 patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 18031
diff changeset
990
18049
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
991 func Test_win_splitmove()
18767
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18253
diff changeset
992 CheckFeature quickfix
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18253
diff changeset
993
18049
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
994 edit a
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
995 leftabove split b
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
996 leftabove vsplit c
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
997 leftabove split d
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
998 call assert_equal(0, win_splitmove(winnr(), winnr('l')))
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
999 call assert_equal(bufname(winbufnr(1)), 'c')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1000 call assert_equal(bufname(winbufnr(2)), 'd')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1001 call assert_equal(bufname(winbufnr(3)), 'b')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1002 call assert_equal(bufname(winbufnr(4)), 'a')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1003 call assert_equal(0, win_splitmove(winnr(), winnr('j'), {'vertical': 1}))
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1004 call assert_equal(0, win_splitmove(winnr(), winnr('j'), {'vertical': 1}))
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1005 call assert_equal(bufname(winbufnr(1)), 'c')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1006 call assert_equal(bufname(winbufnr(2)), 'b')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1007 call assert_equal(bufname(winbufnr(3)), 'd')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1008 call assert_equal(bufname(winbufnr(4)), 'a')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1009 call assert_equal(0, win_splitmove(winnr(), winnr('k'), {'vertical': 1}))
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1010 call assert_equal(bufname(winbufnr(1)), 'd')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1011 call assert_equal(bufname(winbufnr(2)), 'c')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1012 call assert_equal(bufname(winbufnr(3)), 'b')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1013 call assert_equal(bufname(winbufnr(4)), 'a')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1014 call assert_equal(0, win_splitmove(winnr(), winnr('j'), {'rightbelow': v:true}))
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1015 call assert_equal(bufname(winbufnr(1)), 'c')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1016 call assert_equal(bufname(winbufnr(2)), 'b')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1017 call assert_equal(bufname(winbufnr(3)), 'a')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1018 call assert_equal(bufname(winbufnr(4)), 'd')
29994
86eb4aba16c3 patch 9.0.0335: checks for Dictionary argument often give a vague error
Bram Moolenaar <Bram@vim.org>
parents: 29694
diff changeset
1019 call assert_fails('call win_splitmove(winnr(), winnr("k"), test_null_dict())', 'E1297:')
18049
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1020 only | bd
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1021
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1022 call assert_fails('call win_splitmove(winnr(), 123)', 'E957:')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1023 call assert_fails('call win_splitmove(123, winnr())', 'E957:')
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1024 call assert_fails('call win_splitmove(winnr(), winnr())', 'E957:')
19065
ef3633932b0c patch 8.2.0093: win_splitmove() can make Vim hang
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
1025
ef3633932b0c patch 8.2.0093: win_splitmove() can make Vim hang
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
1026 tabnew
ef3633932b0c patch 8.2.0093: win_splitmove() can make Vim hang
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
1027 call assert_fails('call win_splitmove(1, win_getid(1, 1))', 'E957:')
ef3633932b0c patch 8.2.0093: win_splitmove() can make Vim hang
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
1028 tabclose
18049
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1029 endfunc
a9f1656f13c9 patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents: 18035
diff changeset
1030
19289
2f0f308c069c patch 8.2.0203: :helptags and some other functionality not tested
Bram Moolenaar <Bram@vim.org>
parents: 19065
diff changeset
1031 " Test for the :only command
2f0f308c069c patch 8.2.0203: :helptags and some other functionality not tested
Bram Moolenaar <Bram@vim.org>
parents: 19065
diff changeset
1032 func Test_window_only()
2f0f308c069c patch 8.2.0203: :helptags and some other functionality not tested
Bram Moolenaar <Bram@vim.org>
parents: 19065
diff changeset
1033 new
2f0f308c069c patch 8.2.0203: :helptags and some other functionality not tested
Bram Moolenaar <Bram@vim.org>
parents: 19065
diff changeset
1034 set modified
2f0f308c069c patch 8.2.0203: :helptags and some other functionality not tested
Bram Moolenaar <Bram@vim.org>
parents: 19065
diff changeset
1035 new
2f0f308c069c patch 8.2.0203: :helptags and some other functionality not tested
Bram Moolenaar <Bram@vim.org>
parents: 19065
diff changeset
1036 call assert_fails('only', 'E445:')
2f0f308c069c patch 8.2.0203: :helptags and some other functionality not tested
Bram Moolenaar <Bram@vim.org>
parents: 19065
diff changeset
1037 only!
19425
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1038 " Test for :only with a count
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1039 let wid = win_getid()
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1040 new
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1041 new
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1042 3only
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1043 call assert_equal(1, winnr('$'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1044 call assert_equal(wid, win_getid())
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1045 call assert_fails('close', 'E444:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1046 call assert_fails('%close', 'E16:')
19289
2f0f308c069c patch 8.2.0203: :helptags and some other functionality not tested
Bram Moolenaar <Bram@vim.org>
parents: 19065
diff changeset
1047 endfunc
2f0f308c069c patch 8.2.0203: :helptags and some other functionality not tested
Bram Moolenaar <Bram@vim.org>
parents: 19065
diff changeset
1048
19370
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19289
diff changeset
1049 " Test for errors with :wincmd
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19289
diff changeset
1050 func Test_wincmd_errors()
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19289
diff changeset
1051 call assert_fails('wincmd g', 'E474:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19289
diff changeset
1052 call assert_fails('wincmd ab', 'E474:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19289
diff changeset
1053 endfunc
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19289
diff changeset
1054
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19289
diff changeset
1055 " Test for errors with :winpos
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19289
diff changeset
1056 func Test_winpos_errors()
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19289
diff changeset
1057 if !has("gui_running") && !has('win32')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19289
diff changeset
1058 call assert_fails('winpos', 'E188:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19289
diff changeset
1059 endif
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19289
diff changeset
1060 call assert_fails('winpos 10', 'E466:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19289
diff changeset
1061 endfunc
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19289
diff changeset
1062
19435
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1063 " Test for +cmd in a :split command
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1064 func Test_split_cmd()
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1065 split +set\ readonly
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1066 call assert_equal(1, &readonly)
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1067 call assert_equal(2, winnr('$'))
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1068 close
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1069 endfunc
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1070
19748
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1071 " Create maximum number of horizontally or vertically split windows and then
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1072 " run commands that create a new horizontally/vertically split window
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1073 func Run_noroom_for_newwindow_test(dir_arg)
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1074 let dir = (a:dir_arg == 'v') ? 'vert ' : ''
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1075
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1076 " Open as many windows as possible
19752
0927df746554 patch 8.2.0432: a few tests fail in a huge terminal
Bram Moolenaar <Bram@vim.org>
parents: 19748
diff changeset
1077 while v:true
19748
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1078 try
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1079 exe dir . 'new'
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1080 catch /E36:/
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1081 break
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1082 endtry
19752
0927df746554 patch 8.2.0432: a few tests fail in a huge terminal
Bram Moolenaar <Bram@vim.org>
parents: 19748
diff changeset
1083 endwhile
19748
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1084
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1085 call writefile(['first', 'second', 'third'], 'Xnorfile1')
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1086 call writefile([], 'Xnorfile2')
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1087 call writefile([], 'Xnorfile3')
19748
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1088
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1089 " Argument list related commands
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1090 args Xnorfile1 Xnorfile2 Xnorfile3
19748
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1091 next
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1092 for cmd in ['sargument 2', 'snext', 'sprevious', 'sNext', 'srewind',
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1093 \ 'sfirst', 'slast']
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1094 call assert_fails(dir .. cmd, 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1095 endfor
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1096 %argdelete
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1097
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1098 " Buffer related commands
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1099 set modified
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1100 hide enew
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1101 for cmd in ['sbuffer Xnorfile1', 'sbnext', 'sbprevious', 'sbNext', 'sbrewind',
19748
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1102 \ 'sbfirst', 'sblast', 'sball', 'sbmodified', 'sunhide']
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1103 call assert_fails(dir .. cmd, 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1104 endfor
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1105
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1106 " Window related commands
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1107 for cmd in ['split', 'split Xnorfile2', 'new', 'new Xnorfile3', 'sview Xnorfile1',
19748
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1108 \ 'sfind runtest.vim']
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1109 call assert_fails(dir .. cmd, 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1110 endfor
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1111
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1112 " Help
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1113 call assert_fails(dir .. 'help', 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1114 call assert_fails(dir .. 'helpgrep window', 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1115
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1116 " Command-line window
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1117 if a:dir_arg == 'h'
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1118 " Cmd-line window is always a horizontally split window
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1119 call assert_beeps('call feedkeys("q:\<CR>", "xt")')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1120 endif
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1121
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1122 " Quickfix and location list window
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1123 if has('quickfix')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1124 cexpr ''
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1125 call assert_fails(dir .. 'copen', 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1126 lexpr ''
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1127 call assert_fails(dir .. 'lopen', 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1128
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1129 " Preview window
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1130 call assert_fails(dir .. 'pedit Xnorfile2', 'E36:')
19748
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1131 call setline(1, 'abc')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1132 call assert_fails(dir .. 'psearch abc', 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1133 endif
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1134
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1135 " Window commands (CTRL-W ^ and CTRL-W f)
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1136 if a:dir_arg == 'h'
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1137 call assert_fails('call feedkeys("\<C-W>^", "xt")', 'E36:')
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1138 call setline(1, 'Xnorfile1')
19748
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1139 call assert_fails('call feedkeys("gg\<C-W>f", "xt")', 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1140 endif
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1141 enew!
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1142
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1143 " Tag commands (:stag, :stselect and :stjump)
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1144 call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1145 \ "second\tXnorfile1\t2",
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1146 \ "third\tXnorfile1\t3",],
19748
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1147 \ 'Xtags')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1148 set tags=Xtags
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1149 call assert_fails(dir .. 'stag second', 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1150 call assert_fails('call feedkeys(":" .. dir .. "stselect second\n1\n", "xt")', 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1151 call assert_fails(dir .. 'stjump second', 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1152 call assert_fails(dir .. 'ptag second', 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1153 set tags&
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1154 call delete('Xtags')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1155
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1156 " :isplit and :dsplit
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1157 call setline(1, ['#define FOO 1', 'FOO'])
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1158 normal 2G
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1159 call assert_fails(dir .. 'isplit FOO', 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1160 call assert_fails(dir .. 'dsplit FOO', 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1161
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1162 " terminal
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1163 if has('terminal')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1164 call assert_fails(dir .. 'terminal', 'E36:')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1165 endif
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1166
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1167 %bwipe!
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1168 call delete('Xnorfile1')
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1169 call delete('Xnorfile2')
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1170 call delete('Xnorfile3')
19748
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1171 only
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1172 endfunc
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1173
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1174 func Test_split_cmds_with_no_room()
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1175 call Run_noroom_for_newwindow_test('h')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1176 call Run_noroom_for_newwindow_test('v')
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1177 endfunc
d089bd9511c0 patch 8.2.0430: window creation failure not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19740
diff changeset
1178
20120
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
1179 " Test for various wincmd failures
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
1180 func Test_wincmd_fails()
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
1181 only!
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
1182 call assert_beeps("normal \<C-W>w")
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
1183 call assert_beeps("normal \<C-W>p")
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
1184 call assert_beeps("normal \<C-W>gk")
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
1185 call assert_beeps("normal \<C-W>r")
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
1186 call assert_beeps("normal \<C-W>K")
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
1187 call assert_beeps("normal \<C-W>H")
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
1188 call assert_beeps("normal \<C-W>2gt")
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
1189 endfunc
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19932
diff changeset
1190
22073
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1191 func Test_window_resize()
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1192 " Vertical :resize (absolute, relative, min and max size).
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1193 vsplit
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1194 vert resize 8
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1195 call assert_equal(8, winwidth(0))
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1196 vert resize +2
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1197 call assert_equal(10, winwidth(0))
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1198 vert resize -2
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1199 call assert_equal(8, winwidth(0))
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1200 vert resize
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1201 call assert_equal(&columns - 2, winwidth(0))
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1202 vert resize 0
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1203 call assert_equal(1, winwidth(0))
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1204 vert resize 99999
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1205 call assert_equal(&columns - 2, winwidth(0))
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1206
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1207 %bwipe!
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1208
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1209 " Horizontal :resize (with absolute, relative size, min and max size).
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1210 split
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1211 resize 8
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1212 call assert_equal(8, winheight(0))
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1213 resize +2
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1214 call assert_equal(10, winheight(0))
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1215 resize -2
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1216 call assert_equal(8, winheight(0))
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1217 resize
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1218 call assert_equal(&lines - 4, winheight(0))
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1219 resize 0
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1220 call assert_equal(1, winheight(0))
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1221 resize 99999
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1222 call assert_equal(&lines - 4, winheight(0))
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1223
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1224 " :resize with explicit window number.
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1225 let other_winnr = winnr('j')
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1226 exe other_winnr .. 'resize 10'
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1227 call assert_equal(10, winheight(other_winnr))
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1228 call assert_equal(&lines - 10 - 3, winheight(0))
22616
f773ac13c093 patch 8.2.1856: "2resize" uses size of current window
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
1229 exe other_winnr .. 'resize +1'
f773ac13c093 patch 8.2.1856: "2resize" uses size of current window
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
1230 exe other_winnr .. 'resize +1'
f773ac13c093 patch 8.2.1856: "2resize" uses size of current window
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
1231 call assert_equal(12, winheight(other_winnr))
f773ac13c093 patch 8.2.1856: "2resize" uses size of current window
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
1232 call assert_equal(&lines - 10 - 3 -2, winheight(0))
23402
65718283239b patch 8.2.2244: crash when making the window width negative
Bram Moolenaar <Bram@vim.org>
parents: 22616
diff changeset
1233 close
65718283239b patch 8.2.2244: crash when making the window width negative
Bram Moolenaar <Bram@vim.org>
parents: 22616
diff changeset
1234
65718283239b patch 8.2.2244: crash when making the window width negative
Bram Moolenaar <Bram@vim.org>
parents: 22616
diff changeset
1235 vsplit
65718283239b patch 8.2.2244: crash when making the window width negative
Bram Moolenaar <Bram@vim.org>
parents: 22616
diff changeset
1236 wincmd l
65718283239b patch 8.2.2244: crash when making the window width negative
Bram Moolenaar <Bram@vim.org>
parents: 22616
diff changeset
1237 let other_winnr = winnr('h')
65718283239b patch 8.2.2244: crash when making the window width negative
Bram Moolenaar <Bram@vim.org>
parents: 22616
diff changeset
1238 call assert_notequal(winnr(), other_winnr)
23434
0fe2cdcff19b patch 8.2.2260: window resize test fails in very wide terminal
Bram Moolenaar <Bram@vim.org>
parents: 23402
diff changeset
1239 exe 'vert ' .. other_winnr .. 'resize -' .. &columns
23402
65718283239b patch 8.2.2244: crash when making the window width negative
Bram Moolenaar <Bram@vim.org>
parents: 22616
diff changeset
1240 call assert_equal(0, winwidth(other_winnr))
22073
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1241
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1242 %bwipe!
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1243 endfunc
28b302ccfe21 patch 8.2.1586: :resize command not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1244
21020
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1245 " Test for adjusting the window width when a window is closed with some
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1246 " windows using 'winfixwidth'
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1247 func Test_window_width_adjust()
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1248 only
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1249 " Three vertical windows. Windows 1 and 2 have 'winfixwidth' set and close
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1250 " window 2.
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1251 wincmd v
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1252 vert resize 10
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1253 set winfixwidth
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1254 wincmd v
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1255 set winfixwidth
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1256 wincmd c
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1257 call assert_inrange(10, 12, winwidth(1))
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1258 " Three vertical windows. Windows 2 and 3 have 'winfixwidth' set and close
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1259 " window 3.
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1260 only
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1261 set winfixwidth
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1262 wincmd v
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1263 vert resize 10
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1264 set winfixwidth
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1265 wincmd v
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1266 set nowinfixwidth
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1267 wincmd b
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1268 wincmd c
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1269 call assert_inrange(10, 12, winwidth(2))
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1270
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1271 new | only
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1272 endfunc
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1273
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1274 " Test for jumping to a vertical/horizontal neighbor window based on the
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1275 " current cursor position
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1276 func Test_window_goto_neightbor()
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1277 %bw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1278
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1279 " Vertical window movement
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1280
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1281 " create the following window layout:
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1282 " +--+--+
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1283 " |w1|w3|
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1284 " +--+ |
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1285 " |w2| |
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1286 " +--+--+
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1287 " |w4 |
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1288 " +-----+
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1289 new
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1290 vsplit
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1291 split
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1292 " vertically jump from w4
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1293 wincmd b
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1294 call setline(1, repeat(' ', &columns))
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1295 call cursor(1, 1)
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1296 wincmd k
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1297 call assert_equal(2, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1298 wincmd b
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1299 call cursor(1, &columns)
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1300 redraw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1301 wincmd k
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1302 call assert_equal(3, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1303 %bw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1304
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1305 " create the following window layout:
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1306 " +--+--+--+
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1307 " |w1|w2|w3|
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1308 " +--+--+--+
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1309 " |w4 |
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1310 " +--------+
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1311 new
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1312 vsplit
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1313 vsplit
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1314 wincmd b
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1315 call setline(1, repeat(' ', &columns))
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1316 call cursor(1, 1)
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1317 wincmd k
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1318 call assert_equal(1, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1319 wincmd b
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1320 call cursor(1, &columns / 2)
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1321 redraw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1322 wincmd k
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1323 call assert_equal(2, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1324 wincmd b
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1325 call cursor(1, &columns)
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1326 redraw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1327 wincmd k
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1328 call assert_equal(3, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1329 %bw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1330
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1331 " Horizontal window movement
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1332
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1333 " create the following window layout:
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1334 " +--+--+--+
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1335 " |w1|w2|w4|
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1336 " +--+--+ |
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1337 " |w3 | |
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1338 " +-----+--+
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1339 vsplit
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1340 split
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1341 vsplit
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1342 4wincmd l
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1343 call setline(1, repeat([' '], &lines))
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1344 call cursor(1, 1)
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1345 redraw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1346 wincmd h
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1347 call assert_equal(2, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1348 4wincmd l
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1349 call cursor(&lines, 1)
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1350 redraw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1351 wincmd h
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1352 call assert_equal(3, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1353 %bw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1354
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1355 " create the following window layout:
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1356 " +--+--+
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1357 " |w1|w4|
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1358 " +--+ +
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1359 " |w2| |
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1360 " +--+ +
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1361 " |w3| |
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1362 " +--+--+
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1363 vsplit
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1364 split
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1365 split
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1366 wincmd l
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1367 call setline(1, repeat([' '], &lines))
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1368 call cursor(1, 1)
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1369 redraw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1370 wincmd h
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1371 call assert_equal(1, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1372 wincmd l
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1373 call cursor(&lines / 2, 1)
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1374 redraw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1375 wincmd h
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1376 call assert_equal(2, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1377 wincmd l
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1378 call cursor(&lines, 1)
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1379 redraw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1380 wincmd h
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1381 call assert_equal(3, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1382 %bw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1383 endfunc
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1384
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1385 " Test for an autocmd closing the destination window when jumping from one
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1386 " window to another.
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1387 func Test_close_dest_window()
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1388 split
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1389 edit Xdstfile
21020
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1390
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1391 " Test for BufLeave
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1392 augroup T1
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1393 au!
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1394 au BufLeave Xdstfile $wincmd c
21020
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1395 augroup END
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1396 wincmd b
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1397 call assert_equal(1, winnr('$'))
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1398 call assert_equal('Xdstfile', @%)
21020
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1399 augroup T1
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1400 au!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1401 augroup END
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1402
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1403 " Test for WinLeave
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1404 new
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1405 wincmd p
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1406 augroup T1
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1407 au!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1408 au WinLeave * 1wincmd c
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1409 augroup END
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1410 wincmd t
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1411 call assert_equal(1, winnr('$'))
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1412 call assert_equal('Xdstfile', @%)
21020
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1413 augroup T1
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1414 au!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1415 augroup END
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1416 augroup! T1
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1417 %bw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1418 endfunc
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20178
diff changeset
1419
26468
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1420 func Test_window_minimal_size()
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1421 set winminwidth=0 winminheight=0
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1422
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1423 " check size is fixed vertically
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1424 new
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1425 call win_execute(win_getid(2), 'wincmd _')
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1426 call assert_equal(0, winheight(0))
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1427 call feedkeys('0', 'tx')
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1428 call assert_equal(1, winheight(0))
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1429 bwipe!
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1430
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1431 " check size is fixed horizontally
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1432 vert new
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1433 call win_execute(win_getid(2), 'wincmd |')
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1434 call assert_equal(0, winwidth(0))
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1435 call feedkeys('0', 'tx')
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1436 call assert_equal(1, winwidth(0))
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1437 bwipe!
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1438
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1439 if has('timers')
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1440 " check size is fixed in Insert mode
26520
bea106f5fd26 patch 8.2.3789: Test_window_minimal_size can fail on a slow machine
Bram Moolenaar <Bram@vim.org>
parents: 26468
diff changeset
1441 func s:CheckSize(timer) abort
bea106f5fd26 patch 8.2.3789: Test_window_minimal_size can fail on a slow machine
Bram Moolenaar <Bram@vim.org>
parents: 26468
diff changeset
1442 call win_execute(win_getid(2), 'wincmd _')
bea106f5fd26 patch 8.2.3789: Test_window_minimal_size can fail on a slow machine
Bram Moolenaar <Bram@vim.org>
parents: 26468
diff changeset
1443 call assert_equal(0, winheight(0))
bea106f5fd26 patch 8.2.3789: Test_window_minimal_size can fail on a slow machine
Bram Moolenaar <Bram@vim.org>
parents: 26468
diff changeset
1444 call feedkeys(" \<Esc>", 't!')
bea106f5fd26 patch 8.2.3789: Test_window_minimal_size can fail on a slow machine
Bram Moolenaar <Bram@vim.org>
parents: 26468
diff changeset
1445 endfunc
26468
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1446 new
26520
bea106f5fd26 patch 8.2.3789: Test_window_minimal_size can fail on a slow machine
Bram Moolenaar <Bram@vim.org>
parents: 26468
diff changeset
1447 call timer_start(100, function('s:CheckSize'))
26468
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1448 call feedkeys('a', 'tx!')
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1449 call assert_equal(1, winheight(0))
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1450 bwipe!
26520
bea106f5fd26 patch 8.2.3789: Test_window_minimal_size can fail on a slow machine
Bram Moolenaar <Bram@vim.org>
parents: 26468
diff changeset
1451 delfunc s:CheckSize
26468
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1452 endif
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1453
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1454 set winminwidth& winminheight&
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1455 endfunc
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1456
27047
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1457 func Test_win_move_separator()
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1458 edit a
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1459 leftabove vsplit b
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1460 let w = winwidth(0)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1461 " check win_move_separator from left window on left window
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1462 call assert_equal(1, winnr())
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1463 for offset in range(5)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1464 call assert_true(win_move_separator(0, offset))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1465 call assert_equal(w + offset, winwidth(0))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1466 call assert_true(0->win_move_separator(-offset))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1467 call assert_equal(w, winwidth(0))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1468 endfor
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1469 " check win_move_separator from right window on left window number
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1470 wincmd l
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1471 call assert_notequal(1, winnr())
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1472 for offset in range(5)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1473 call assert_true(1->win_move_separator(offset))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1474 call assert_equal(w + offset, winwidth(1))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1475 call assert_true(win_move_separator(1, -offset))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1476 call assert_equal(w, winwidth(1))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1477 endfor
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1478 " check win_move_separator from right window on left window ID
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1479 let id = win_getid(1)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1480 for offset in range(5)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1481 call assert_true(win_move_separator(id, offset))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1482 call assert_equal(w + offset, winwidth(id))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1483 call assert_true(id->win_move_separator(-offset))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1484 call assert_equal(w, winwidth(id))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1485 endfor
27440
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1486 " check win_move_separator from right window on right window is no-op
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1487 let w0 = winwidth(0)
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1488 call assert_true(win_move_separator(0, 1))
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1489 call assert_equal(w0, winwidth(0))
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1490 call assert_true(win_move_separator(0, -1))
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1491 call assert_equal(w0, winwidth(0))
27047
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1492 " check that win_move_separator doesn't error with offsets beyond moving
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1493 " possibility
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1494 call assert_true(win_move_separator(id, 5000))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1495 call assert_true(winwidth(id) > w)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1496 call assert_true(win_move_separator(id, -5000))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1497 call assert_true(winwidth(id) < w)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1498 " check that win_move_separator returns false for an invalid window
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1499 wincmd =
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1500 let w = winwidth(0)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1501 call assert_false(win_move_separator(-1, 1))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1502 call assert_equal(w, winwidth(0))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1503 " check that win_move_separator returns false for a popup window
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1504 let id = popup_create(['hello', 'world'], {})
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1505 let w = winwidth(id)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1506 call assert_false(win_move_separator(id, 1))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1507 call assert_equal(w, winwidth(id))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1508 call popup_close(id)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1509 %bwipe!
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1510 endfunc
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1511
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1512 func Test_win_move_statusline()
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1513 edit a
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1514 leftabove split b
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1515 let h = winheight(0)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1516 " check win_move_statusline from top window on top window
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1517 call assert_equal(1, winnr())
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1518 for offset in range(5)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1519 call assert_true(win_move_statusline(0, offset))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1520 call assert_equal(h + offset, winheight(0))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1521 call assert_true(0->win_move_statusline(-offset))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1522 call assert_equal(h, winheight(0))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1523 endfor
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1524 " check win_move_statusline from bottom window on top window number
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1525 wincmd j
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1526 call assert_notequal(1, winnr())
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1527 for offset in range(5)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1528 call assert_true(1->win_move_statusline(offset))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1529 call assert_equal(h + offset, winheight(1))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1530 call assert_true(win_move_statusline(1, -offset))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1531 call assert_equal(h, winheight(1))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1532 endfor
27440
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1533 " check win_move_statusline from bottom window on bottom window
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1534 let h0 = winheight(0)
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1535 for offset in range(5)
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1536 call assert_true(0->win_move_statusline(-offset))
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1537 call assert_equal(h0 - offset, winheight(0))
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1538 call assert_equal(1 + offset, &cmdheight)
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1539 call assert_true(win_move_statusline(0, offset))
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1540 call assert_equal(h0, winheight(0))
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1541 call assert_equal(1, &cmdheight)
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1542 endfor
1118a65c9bc7 patch 8.2.4248: no proper test for moving the window separator
Bram Moolenaar <Bram@vim.org>
parents: 27047
diff changeset
1543 call assert_true(win_move_statusline(0, 1))
30005
bb0e525e1393 patch 9.0.0340: the 'cmdheight' zero support causes too much trouble
Bram Moolenaar <Bram@vim.org>
parents: 29994
diff changeset
1544 call assert_equal(h0, winheight(0))
bb0e525e1393 patch 9.0.0340: the 'cmdheight' zero support causes too much trouble
Bram Moolenaar <Bram@vim.org>
parents: 29994
diff changeset
1545 call assert_equal(1, &cmdheight)
27047
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1546 " check win_move_statusline from bottom window on top window ID
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1547 let id = win_getid(1)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1548 for offset in range(5)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1549 call assert_true(win_move_statusline(id, offset))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1550 call assert_equal(h + offset, winheight(id))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1551 call assert_true(id->win_move_statusline(-offset))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1552 call assert_equal(h, winheight(id))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1553 endfor
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1554 " check that win_move_statusline doesn't error with offsets beyond moving
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1555 " possibility
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1556 call assert_true(win_move_statusline(id, 5000))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1557 call assert_true(winheight(id) > h)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1558 call assert_true(win_move_statusline(id, -5000))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1559 call assert_true(winheight(id) < h)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1560 " check that win_move_statusline returns false for an invalid window
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1561 wincmd =
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1562 let h = winheight(0)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1563 call assert_false(win_move_statusline(-1, 1))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1564 call assert_equal(h, winheight(0))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1565 " check that win_move_statusline returns false for a popup window
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1566 let id = popup_create(['hello', 'world'], {})
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1567 let h = winheight(id)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1568 call assert_false(win_move_statusline(id, 1))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1569 call assert_equal(h, winheight(id))
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1570 call popup_close(id)
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1571 %bwipe!
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1572 endfunc
b94cdb5ef20e patch 8.2.4052: not easy to resize a window from a plugin
Bram Moolenaar <Bram@vim.org>
parents: 26520
diff changeset
1573
28289
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1574 " Test for window allocation failure
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1575 func Test_window_alloc_failure()
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1576 %bw!
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1577
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1578 " test for creating a new window above current window
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1579 call test_alloc_fail(GetAllocId('newwin_wvars'), 0, 0)
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1580 call assert_fails('above new', 'E342:')
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1581 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: 27440
diff changeset
1582
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1583 " test for creating a new window below current window
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1584 call test_alloc_fail(GetAllocId('newwin_wvars'), 0, 0)
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1585 call assert_fails('below new', 'E342:')
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1586 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: 27440
diff changeset
1587
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1588 " test for popup window creation failure
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1589 call test_alloc_fail(GetAllocId('newwin_wvars'), 0, 0)
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1590 call assert_fails('call popup_create("Hello", {})', 'E342:')
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1591 call assert_equal([], popup_list())
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1592
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1593 call test_alloc_fail(GetAllocId('newwin_wvars'), 0, 0)
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1594 call assert_fails('split', 'E342:')
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1595 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: 27440
diff changeset
1596
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1597 edit Xwaffile1
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1598 edit Xwaffile2
28289
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1599 call test_alloc_fail(GetAllocId('newwin_wvars'), 0, 0)
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1600 call assert_fails('sb Xwaffile1', 'E342:')
28289
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1601 call assert_equal(1, winnr('$'))
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 30009
diff changeset
1602 call assert_equal('Xwaffile2', @%)
28289
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1603 %bw!
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1604
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1605 " FIXME: The following test crashes Vim
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1606 " test for new tabpage creation failure
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1607 " call test_alloc_fail(GetAllocId('newwin_wvars'), 0, 0)
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1608 " 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: 27440
diff changeset
1609 " 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: 27440
diff changeset
1610 " 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: 27440
diff changeset
1611
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1612 " This test messes up the internal Vim window/frame information. So the
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1613 " Test_window_cmd_cmdwin_with_vsp() test fails after running this test.
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1614 " Open a new tab and close everything else to fix this issue.
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1615 tabnew
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1616 tabonly
cdaff4db7760 patch 8.2.4670: memory allocation failures for new tab page not tested
Bram Moolenaar <Bram@vim.org>
parents: 27440
diff changeset
1617 endfunc
26468
2fc13817b100 patch 8.2.3764: cannot see any text when window was made zero lines
Bram Moolenaar <Bram@vim.org>
parents: 24882
diff changeset
1618
30134
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1619 func Test_win_equal_last_status()
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1620 let save_lines = &lines
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1621 set lines=20
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1622 set splitbelow
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1623 set laststatus=0
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1624
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1625 split | split | quit
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1626 call assert_equal(winheight(1), winheight(2))
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1627
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1628 let &lines = save_lines
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1629 set splitbelow&
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1630 set laststatus&
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1631 endfunc
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1632
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1633 " Test "screen" and "cursor" values for 'splitkeep' with a sequence of
30339
b5f67135fcb6 patch 9.0.0505: various problems with 'nosplitscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30300
diff changeset
1634 " split operations for various options: with and without a winbar,
b5f67135fcb6 patch 9.0.0505: various problems with 'nosplitscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30300
diff changeset
1635 " tabline, for each possible value of 'laststatus', 'scrolloff',
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1636 " 'equalalways', and with the cursor at the top, middle and bottom.
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1637 func Test_splitkeep_options()
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1638 " disallow window resizing
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1639 let save_WS = &t_WS
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1640 set t_WS=
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1641
30219
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1642 let gui = has("gui_running")
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1643 inoremap <expr> c "<cmd>copen<bar>wincmd k<CR>"
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1644 for run in range(0, 20)
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1645 let &splitkeep = run > 10 ? 'topline' : 'screen'
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1646 let &scrolloff = (!(run % 4) ? 0 : run)
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1647 let &laststatus = (run % 3)
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1648 let &splitbelow = (run % 3)
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1649 let &equalalways = (run % 2)
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1650 let wsb = (run % 2) && &splitbelow
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1651 let tl = (gui ? 0 : ((run % 5) ? 1 : 0))
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1652 let pos = !(run % 3) ? 'H' : ((run % 2) ? 'M' : 'L')
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1653 tabnew | tabonly! | redraw
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1654 execute (run % 5) ? 'tabnew' : ''
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1655 execute (run % 2) ? 'nnoremenu 1.10 WinBar.Test :echo' : ''
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1656 call setline(1, range(1, 256))
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1657 " No scroll for restore_snapshot
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1658 norm G
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1659 try
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1660 copen | close | colder
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1661 catch /E380/
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1662 endtry
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1663 call assert_equal(257 - winheight(0), line("w0"))
30239
91ecee475811 patch 9.0.0455: a few problems with 'splitscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30219
diff changeset
1664
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1665 " No scroll for firstwin horizontal split
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1666 execute 'norm gg' . pos
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1667 split | redraw | wincmd k
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1668 call assert_equal(1, line("w0"))
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1669 call assert_equal(&scroll, winheight(0) / 2)
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1670 wincmd j
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1671 call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
30219
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1672
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1673 " No scroll when resizing windows
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1674 wincmd k | resize +2 | redraw
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1675 call assert_equal(1, line("w0"))
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1676 wincmd j
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1677 call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
30219
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1678
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1679 " No scroll when dragging statusline
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1680 call win_move_statusline(1, -3)
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1681 call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1682 wincmd k
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1683 call assert_equal(1, line("w0"))
30219
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1684
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1685 " No scroll when changing shellsize
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1686 set lines+=2
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1687 call assert_equal(1, line("w0"))
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1688 wincmd j
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1689 call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1690 set lines-=2
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1691 call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1692 wincmd k
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1693 call assert_equal(1, line("w0"))
30219
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1694
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1695 " No scroll when equalizing windows
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1696 wincmd =
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1697 call assert_equal(1, line("w0"))
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1698 wincmd j
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1699 call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1700 wincmd k
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1701 call assert_equal(1, line("w0"))
30219
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1702
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1703 " No scroll in windows split multiple times
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1704 vsplit | split | 4wincmd w
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1705 call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1706 1wincmd w | quit | wincmd l | split
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1707 call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1708 wincmd j
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1709 call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
30219
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1710
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1711 " No scroll in small window
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1712 2wincmd w | only | 5split | wincmd k
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1713 call assert_equal(1, line("w0"))
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1714 wincmd j
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1715 call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
30219
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1716
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1717 " No scroll for vertical split
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1718 quit | vsplit | wincmd l
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1719 call assert_equal(1, line("w0"))
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1720 wincmd h
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1721 call assert_equal(1, line("w0"))
30219
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1722
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1723 " No scroll in windows split and quit multiple times
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1724 quit | redraw | split | split | quit | redraw
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1725 call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
30219
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1726
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1727 " No scroll for new buffer
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1728 1wincmd w | only | copen | wincmd k
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1729 call assert_equal(1, line("w0"))
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1730 only
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1731 call assert_equal(1, line("w0"))
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1732 above copen | wincmd j
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1733 call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl, line("w0"))
30219
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1734
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1735 " No scroll when opening cmdwin, and no cursor move when closing cmdwin.
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1736 only | norm ggL
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1737 let curpos = getcurpos()
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1738 norm q:
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1739 call assert_equal(1, line("w0"))
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1740 call assert_equal(curpos, getcurpos())
30219
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1741
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1742 " Scroll when cursor becomes invalid in insert mode
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1743 norm Lic
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1744 call assert_equal(curpos, getcurpos())
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1745
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1746 " No scroll when topline not equal to 1
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1747 only | execute "norm gg5\<C-e>" | split | wincmd k
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1748 call assert_equal(6, line("w0"))
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1749 wincmd j
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1750 call assert_equal(&spk == 'topline' ? 6 : 5 + win_screenpos(0)[0] - tl - wsb, line("w0"))
30219
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1751 endfor
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1752
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1753 tabnew | tabonly! | %bwipeout!
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1754 iunmap c
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1755 set scrolloff&
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1756 set splitbelow&
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1757 set laststatus&
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1758 set equalalways&
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1759 set splitkeep&
30285
9edb1a8161ac patch 9.0.0478: test for 'splitscroll' takes too much time
Bram Moolenaar <Bram@vim.org>
parents: 30271
diff changeset
1760 let &t_WS = save_WS
30219
bc8ad1c28b51 patch 9.0.0445: when opening/closing window text moves up/down
Bram Moolenaar <Bram@vim.org>
parents: 30134
diff changeset
1761 endfunc
30134
0211a930d873 patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1762
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1763 function Test_splitkeep_cmdwin_cursor_position()
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1764 set splitkeep=screen
30271
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1765 call setline(1, range(&lines))
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1766
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1767 " No scroll when cursor is at near bottom of window and cusor position
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1768 " recompution (done by line('w0') in this test) happens while in cmdwin.
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1769 normal! G
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1770 let firstline = line('w0')
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1771 autocmd CmdwinEnter * ++once autocmd WinEnter * ++once call line('w0')
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1772 execute "normal! q:\<C-w>q"
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1773 redraw!
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1774 call assert_equal(firstline, line('w0'))
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1775
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1776 " User script can change cursor position successfully while in cmdwin and it
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1777 " shouldn't be changed when closing cmdwin.
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1778 execute "normal! Gq:\<Cmd>call win_execute(winnr('#')->win_getid(), 'call cursor(1, 1)')\<CR>\<C-w>q"
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1779 call assert_equal(1, line('.'))
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1780 call assert_equal(1, col('.'))
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1781
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1782 execute "normal! Gq:\<Cmd>autocmd WinEnter * ++once call cursor(1, 1)\<CR>\<C-w>q"
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1783 call assert_equal(1, line('.'))
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1784 call assert_equal(1, col('.'))
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1785
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1786 %bwipeout!
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1787 set splitkeep&
30271
d8f04df5b917 patch 9.0.0471: no test for what patch 9.0.0469 fixes
Bram Moolenaar <Bram@vim.org>
parents: 30259
diff changeset
1788 endfunction
30300
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1789
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1790 function Test_splitkeep_misc()
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1791 set splitkeep=screen
30339
b5f67135fcb6 patch 9.0.0505: various problems with 'nosplitscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30300
diff changeset
1792 set splitbelow
30300
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1793
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1794 call setline(1, range(1, &lines))
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1795 norm Gzz
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1796 let top = line('w0')
30339
b5f67135fcb6 patch 9.0.0505: various problems with 'nosplitscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30300
diff changeset
1797 " No scroll when aucmd_win is opened
30300
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1798 call setbufvar(bufnr("test", 1) , '&buftype', 'nofile')
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1799 call assert_equal(top, line('w0'))
30339
b5f67135fcb6 patch 9.0.0505: various problems with 'nosplitscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30300
diff changeset
1800 " No scroll when tab is changed/closed
b5f67135fcb6 patch 9.0.0505: various problems with 'nosplitscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30300
diff changeset
1801 tab help | close
b5f67135fcb6 patch 9.0.0505: various problems with 'nosplitscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30300
diff changeset
1802 call assert_equal(top, line('w0'))
b5f67135fcb6 patch 9.0.0505: various problems with 'nosplitscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30300
diff changeset
1803 " No scroll when help is closed and buffer line count < window height
b5f67135fcb6 patch 9.0.0505: various problems with 'nosplitscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30300
diff changeset
1804 norm ggdG
b5f67135fcb6 patch 9.0.0505: various problems with 'nosplitscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30300
diff changeset
1805 call setline(1, range(1, &lines - 10))
30300
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1806 norm G
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1807 let top = line('w0')
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1808 help | quit
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1809 call assert_equal(top, line('w0'))
30665
fe0a18141c3c patch 9.0.0667: ml_get error when 'splitkeep' is "screen"
Bram Moolenaar <Bram@vim.org>
parents: 30657
diff changeset
1810 " No error when resizing window in autocmd and buffer length changed
fe0a18141c3c patch 9.0.0667: ml_get error when 'splitkeep' is "screen"
Bram Moolenaar <Bram@vim.org>
parents: 30657
diff changeset
1811 autocmd FileType qf exe "resize" line('$')
fe0a18141c3c patch 9.0.0667: ml_get error when 'splitkeep' is "screen"
Bram Moolenaar <Bram@vim.org>
parents: 30657
diff changeset
1812 cexpr getline(1, '$')
fe0a18141c3c patch 9.0.0667: ml_get error when 'splitkeep' is "screen"
Bram Moolenaar <Bram@vim.org>
parents: 30657
diff changeset
1813 copen
fe0a18141c3c patch 9.0.0667: ml_get error when 'splitkeep' is "screen"
Bram Moolenaar <Bram@vim.org>
parents: 30657
diff changeset
1814 wincmd p
fe0a18141c3c patch 9.0.0667: ml_get error when 'splitkeep' is "screen"
Bram Moolenaar <Bram@vim.org>
parents: 30657
diff changeset
1815 norm dd
fe0a18141c3c patch 9.0.0667: ml_get error when 'splitkeep' is "screen"
Bram Moolenaar <Bram@vim.org>
parents: 30657
diff changeset
1816 cexpr getline(1, '$')
30300
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1817
30339
b5f67135fcb6 patch 9.0.0505: various problems with 'nosplitscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30300
diff changeset
1818 %bwipeout!
30300
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1819 set splitbelow&
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1820 set splitkeep&
30300
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1821 endfunc
b9d07900b0b8 patch 9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help
Bram Moolenaar <Bram@vim.org>
parents: 30285
diff changeset
1822
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1823 function Test_splitkeep_callback()
30439
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1824 CheckScreendump
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1825 let lines =<< trim END
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1826 set splitkeep=screen
30439
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1827 call setline(1, range(&lines))
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1828 function C1(a, b)
30439
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1829 split | wincmd p
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1830 endfunction
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1831 function C2(a, b)
30439
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1832 close | split
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1833 endfunction
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1834 nn j <cmd>call job_start([&sh, &shcf, "true"], { 'exit_cb': 'C1' })<CR>
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1835 nn t <cmd>call popup_create(term_start([&sh, &shcf, "true"],
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1836 \ { 'hidden': 1, 'exit_cb': 'C2' }), {})<CR>
30439
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1837 END
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1838 call writefile(lines, 'XTestSplitkeepCallback', 'D')
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1839 let buf = RunVimInTerminal('-S XTestSplitkeepCallback', #{rows: 8})
30439
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1840
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1841 call term_sendkeys(buf, "j")
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1842 call VerifyScreenDump(buf, 'Test_splitkeep_callback_1', {})
30439
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1843
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1844 call term_sendkeys(buf, ":quit\<CR>Ht")
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1845 call VerifyScreenDump(buf, 'Test_splitkeep_callback_2', {})
30439
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1846
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1847 call term_sendkeys(buf, ":set sb\<CR>:quit\<CR>Gj")
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1848 call VerifyScreenDump(buf, 'Test_splitkeep_callback_3', {})
30439
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1849
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1850 call term_sendkeys(buf, ":quit\<CR>Gt")
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1851 call VerifyScreenDump(buf, 'Test_splitkeep_callback_4', {})
30439
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1852 endfunc
e3091fc473a1 patch 9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin
Bram Moolenaar <Bram@vim.org>
parents: 30339
diff changeset
1853
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1854 function Test_splitkeep_fold()
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1855 CheckScreendump
30535
04df44c52d65 patch 9.0.0603: with 'nosplitscroll' folds are not handled correctly
Bram Moolenaar <Bram@vim.org>
parents: 30439
diff changeset
1856
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1857 let lines =<< trim END
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1858 set splitkeep=screen
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1859 set foldmethod=marker
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1860 set number
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1861 let line = 1
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1862 for n in range(1, &lines)
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1863 call setline(line, ['int FuncName() {/*{{{*/', 1, 2, 3, 4, 5, '}/*}}}*/',
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1864 \ 'after fold'])
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1865 let line += 8
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1866 endfor
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1867 END
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1868 call writefile(lines, 'XTestSplitkeepFold', 'D')
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1869 let buf = RunVimInTerminal('-S XTestSplitkeepFold', #{rows: 10})
30535
04df44c52d65 patch 9.0.0603: with 'nosplitscroll' folds are not handled correctly
Bram Moolenaar <Bram@vim.org>
parents: 30439
diff changeset
1870
04df44c52d65 patch 9.0.0603: with 'nosplitscroll' folds are not handled correctly
Bram Moolenaar <Bram@vim.org>
parents: 30439
diff changeset
1871 call term_sendkeys(buf, "L:wincmd s\<CR>")
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1872 call VerifyScreenDump(buf, 'Test_splitkeep_fold_1', {})
30535
04df44c52d65 patch 9.0.0603: with 'nosplitscroll' folds are not handled correctly
Bram Moolenaar <Bram@vim.org>
parents: 30439
diff changeset
1873
04df44c52d65 patch 9.0.0603: with 'nosplitscroll' folds are not handled correctly
Bram Moolenaar <Bram@vim.org>
parents: 30439
diff changeset
1874 call term_sendkeys(buf, ":quit\<CR>")
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1875 call VerifyScreenDump(buf, 'Test_splitkeep_fold_2', {})
30535
04df44c52d65 patch 9.0.0603: with 'nosplitscroll' folds are not handled correctly
Bram Moolenaar <Bram@vim.org>
parents: 30439
diff changeset
1876
04df44c52d65 patch 9.0.0603: with 'nosplitscroll' folds are not handled correctly
Bram Moolenaar <Bram@vim.org>
parents: 30439
diff changeset
1877 call term_sendkeys(buf, "H:below split\<CR>")
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1878 call VerifyScreenDump(buf, 'Test_splitkeep_fold_3', {})
30535
04df44c52d65 patch 9.0.0603: with 'nosplitscroll' folds are not handled correctly
Bram Moolenaar <Bram@vim.org>
parents: 30439
diff changeset
1879
04df44c52d65 patch 9.0.0603: with 'nosplitscroll' folds are not handled correctly
Bram Moolenaar <Bram@vim.org>
parents: 30439
diff changeset
1880 call term_sendkeys(buf, ":wincmd k\<CR>:quit\<CR>")
30624
f2f35161d75a patch 9.0.0647: the 'splitscroll' option is not a good name
Bram Moolenaar <Bram@vim.org>
parents: 30535
diff changeset
1881 call VerifyScreenDump(buf, 'Test_splitkeep_fold_4', {})
30535
04df44c52d65 patch 9.0.0603: with 'nosplitscroll' folds are not handled correctly
Bram Moolenaar <Bram@vim.org>
parents: 30439
diff changeset
1882 endfunction
04df44c52d65 patch 9.0.0603: with 'nosplitscroll' folds are not handled correctly
Bram Moolenaar <Bram@vim.org>
parents: 30439
diff changeset
1883
9909
3ee84d270ea7 commit https://github.com/vim/vim/commit/9e4d8215d386100ab660d7d11e6620fd148b605e
Christian Brabandt <cb@256bit.org>
parents: 9349
diff changeset
1884 " vim: shiftwidth=2 sts=2 expandtab