diff src/testdir/test_number.vim @ 10940:a479b7064550 v8.0.0359

patch 8.0.0359: 'number' and 'relativenumber' are not properly tested commit https://github.com/vim/vim/commit/dc9a081712ec8c140e6d4909e9f6b03a629d32d3 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Feb 23 18:46:50 2017 +0100 patch 8.0.0359: 'number' and 'relativenumber' are not properly tested Problem: 'number' and 'relativenumber' are not properly tested. Solution: Add tests, change old style to new style tests. (Ozaki Kiichi, closes #1447)
author Christian Brabandt <cb@256bit.org>
date Thu, 23 Feb 2017 19:00:05 +0100
parents
children 63b02fcf1361
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_number.vim
@@ -0,0 +1,254 @@
+" Test for 'number' and 'relativenumber'
+
+source view_util.vim
+
+func! s:screen_lines(start, end) abort
+  return ScreenLines([a:start, a:end], 8)
+endfunc
+
+func! s:compare_lines(expect, actual)
+  call assert_equal(a:expect, a:actual)
+endfunc
+
+func! s:test_windows(h, w) abort
+  call NewWindow(a:h, a:w)
+endfunc
+
+func! s:close_windows() abort
+  call CloseWindow()
+endfunc
+
+func! s:validate_cursor() abort
+  " update skipcol.
+  " wincol():
+  "   f_wincol
+  "     -> validate_cursor
+  "          -> curs_columns
+  call wincol()
+endfunc
+
+func Test_set_options()
+  set nu rnu
+  call assert_equal(1, &nu)
+  call assert_equal(1, &rnu)
+
+  call s:test_windows(10, 20)
+  call assert_equal(1, &nu)
+  call assert_equal(1, &rnu)
+  call s:close_windows()
+
+  set nu& rnu&
+endfunc
+
+func Test_set_global_and_local()
+  " setlocal must NOT reset the other global value
+  set nonu nornu
+  setglobal nu
+  setlocal rnu
+  call assert_equal(1, &g:nu)
+
+  set nonu nornu
+  setglobal rnu
+  setlocal nu
+  call assert_equal(1, &g:rnu)
+
+  " setglobal MUST reset the other global value
+  set nonu nornu
+  setglobal nu
+  setglobal rnu
+  call assert_equal(1, &g:nu)
+
+  set nonu nornu
+  setglobal rnu
+  setglobal nu
+  call assert_equal(1, &g:rnu)
+
+  " set MUST reset the other global value
+  set nonu nornu
+  set nu
+  set rnu
+  call assert_equal(1, &g:nu)
+
+  set nonu nornu
+  set rnu
+  set nu
+  call assert_equal(1, &g:rnu)
+
+  set nu& rnu&
+endfunc
+
+func Test_number()
+  call s:test_windows(10, 20)
+  call setline(1, ["abcdefghij", "klmnopqrst", "uvwxyzABCD", "EFGHIJKLMN", "OPQRSTUVWX", "YZ"])
+  setl number
+  let lines = s:screen_lines(1, 4)
+  let expect = [
+\ "  1 abcd",
+\ "  2 klmn",
+\ "  3 uvwx",
+\ "  4 EFGH",
+\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows()
+endfunc
+
+func Test_relativenumber()
+  call s:test_windows(10, 20)
+  call setline(1, ["abcdefghij", "klmnopqrst", "uvwxyzABCD", "EFGHIJKLMN", "OPQRSTUVWX", "YZ"])
+  3
+  setl relativenumber
+  let lines = s:screen_lines(1, 6)
+  let expect = [
+\ "  2 abcd",
+\ "  1 klmn",
+\ "  0 uvwx",
+\ "  1 EFGH",
+\ "  2 OPQR",
+\ "  3 YZ  ",
+\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows()
+endfunc
+
+func Test_number_with_relativenumber()
+  call s:test_windows(10, 20)
+  call setline(1, ["abcdefghij", "klmnopqrst", "uvwxyzABCD", "EFGHIJKLMN", "OPQRSTUVWX", "YZ"])
+  4
+  setl number relativenumber
+  let lines = s:screen_lines(1, 6)
+  let expect = [
+\ "  3 abcd",
+\ "  2 klmn",
+\ "  1 uvwx",
+\ "4   EFGH",
+\ "  1 OPQR",
+\ "  2 YZ  ",
+\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows()
+endfunc
+
+func Test_number_with_linewrap1()
+  call s:test_windows(3, 20)
+  normal! 61ia
+  setl number wrap
+  call s:validate_cursor()
+  let lines = s:screen_lines(1, 3)
+  let expect = [
+\ "--1 aaaa",
+\ "    aaaa",
+\ "    aaaa",
+\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows()
+endfunc
+
+" Pending: https://groups.google.com/forum/#!topic/vim_dev/tzNKP7EDWYI
+func XTest_number_with_linewrap2()
+  call s:test_windows(3, 20)
+  normal! 61ia
+  setl number wrap
+  call s:validate_cursor()
+  0
+  call s:validate_cursor()
+  let lines = s:screen_lines(1, 3)
+  let expect = [
+\ "  1 aaaa",
+\ "    aaaa",
+\ "    aaaa",
+\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows()
+endfunc
+
+" Pending: https://groups.google.com/forum/#!topic/vim_dev/tzNKP7EDWYI
+func XTest_number_with_linewrap3()
+  call s:test_windows(4, 20)
+  normal! 81ia
+  setl number wrap
+  call s:validate_cursor()
+  setl nonumber
+  call s:validate_cursor()
+  let lines = s:screen_lines(1, 4)
+  let expect = [
+\ "aaaaaaaa",
+\ "aaaaaaaa",
+\ "aaaaaaaa",
+\ "a       ",
+\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows()
+endfunc
+
+func Test_numberwidth()
+  call s:test_windows(10, 20)
+  call setline(1, repeat(['aaaa'], 10))
+  setl number numberwidth=6
+  let lines = s:screen_lines(1, 3)
+  let expect = [
+\ "    1 aa",
+\ "    2 aa",
+\ "    3 aa",
+\ ]
+  call s:compare_lines(expect, lines)
+
+  set relativenumber
+  let lines = s:screen_lines(1, 3)
+  let expect = [
+\ "1     aa",
+\ "    1 aa",
+\ "    2 aa",
+\ ]
+  call s:compare_lines(expect, lines)
+
+  set nonumber
+  let lines = s:screen_lines(1, 3)
+  let expect = [
+\ "    0 aa",
+\ "    1 aa",
+\ "    2 aa",
+\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows()
+endfunc
+
+func Test_numberwidth_adjusted()
+  call s:test_windows(10, 20)
+  call setline(1, repeat(['aaaa'], 10000))
+  setl number numberwidth=4
+  let lines = s:screen_lines(1, 3)
+  let expect = [
+\ "    1 aa",
+\ "    2 aa",
+\ "    3 aa",
+\ ]
+  call s:compare_lines(expect, lines)
+
+  $
+  let lines = s:screen_lines(8, 10)
+  let expect = [
+\ " 9998 aa",
+\ " 9999 aa",
+\ "10000 aa",
+\ ]
+  call s:compare_lines(expect, lines)
+
+  setl relativenumber
+  let lines = s:screen_lines(8, 10)
+  let expect = [
+\ "    2 aa",
+\ "    1 aa",
+\ "10000 aa",
+\ ]
+  call s:compare_lines(expect, lines)
+
+  setl nonumber
+  let lines = s:screen_lines(8, 10)
+  let expect = [
+\ "  2 aaaa",
+\ "  1 aaaa",
+\ "  0 aaaa",
+\ ]
+  call s:compare_lines(expect, lines)
+  call s:close_windows()
+endfunc