1" Test for 'scrollbind' causing an unexpected scroll of one of the windows.
2func Test_scrollbind()
3  " We don't want the status line to cause problems:
4  set laststatus=0
5  let totalLines = &lines * 20
6  let middle = totalLines / 2
7  new | only
8  for i in range(1, totalLines)
9      call setline(i, 'LINE ' . i)
10  endfor
11  exe string(middle)
12  normal zt
13  normal M
14  aboveleft vert new
15  for i in range(1, totalLines)
16      call setline(i, 'line ' . i)
17  endfor
18  exe string(middle)
19  normal zt
20  normal M
21  " Execute the following two commands at once to reproduce the problem.
22  setl scb | wincmd p
23  setl scb
24  wincmd w
25  let topLineLeft = line('w0')
26  wincmd p
27  let topLineRight = line('w0')
28  setl noscrollbind
29  wincmd p
30  setl noscrollbind
31  call assert_equal(0, topLineLeft - topLineRight)
32endfunc
33