test_gui.vim (2762B)
1 func SetUp() 2 source $VIMRUNTIME/menu.vim 3 endfunc 4 5 func Test_colorscheme() 6 " call assert_equal('16777216', &t_Co) 7 8 let colorscheme_saved = exists('g:colors_name') ? g:colors_name : 'default' 9 let g:color_count = 0 10 augroup TestColors 11 au! 12 au ColorScheme * let g:color_count += 1 13 \ | let g:after_colors = g:color_count 14 \ | let g:color_after = expand('<amatch>') 15 au ColorSchemePre * let g:color_count += 1 16 \ | let g:before_colors = g:color_count 17 \ | let g:color_pre = expand('<amatch>') 18 augroup END 19 20 colorscheme torte 21 redraw! 22 call assert_equal('dark', &background) 23 call assert_equal(1, g:before_colors) 24 call assert_equal(2, g:after_colors) 25 call assert_equal('torte', g:color_pre) 26 call assert_equal('torte', g:color_after) 27 call assert_equal("\ntorte", execute('colorscheme')) 28 29 let a = substitute(execute('hi Search'), "\n\\s\\+", ' ', 'g') 30 " FIXME: temporarily check less while the colorscheme changes 31 " call assert_match("\nSearch xxx term=reverse cterm=reverse ctermfg=196 ctermbg=16 gui=reverse guifg=#ff0000 guibg=#000000", a) 32 " call assert_match("\nSearch xxx term=reverse ", a) 33 34 call assert_fails('colorscheme does_not_exist', 'E185:') 35 call assert_equal('does_not_exist', g:color_pre) 36 call assert_equal('torte', g:color_after) 37 38 exec 'colorscheme' colorscheme_saved 39 augroup TestColors 40 au! 41 augroup END 42 unlet g:color_count g:after_colors g:before_colors 43 redraw! 44 endfunc 45 46 " Test that Buffers menu generates the correct index for different buffer 47 " names for sorting. 48 func Test_Buffers_Menu() 49 doautocmd LoadBufferMenu VimEnter 50 51 " Non-ASCII characters only use the first character as idx 52 let idx_emoji = or(char2nr('π'), 0x40000000) 53 54 " Only first five letters are used for alphanumeric: 55 " ('a'-32) << 24 + ('b'-32) << 18 + ('c'-32) << 12 + ('d'-32) << 6 + ('e'-32) 56 let idx_abcde = 0x218A3925 57 " ('a'-32) << 24 + ('b'-32) << 18 + ('c'-32) << 12 + ('d'-32) << 6 + ('f'-32) 58 let idx_abcdf = 0x218A3926 59 " ('a'-32) << 24 + 63 (clamped) << 18 + ('c'-32) << 12 + ('d'-32) << 6 + ('e'-32) 60 let idx_a_emoji_cde = 0x21FE3925 61 62 let names = ['π', 'π1', 'π2', 'abcde', 'abcdefghi', 'abcdf', 'aπcde'] 63 let indices = [idx_emoji, idx_emoji, idx_emoji, idx_abcde, idx_abcde, idx_abcdf, idx_a_emoji_cde] 64 for i in range(len(names)) 65 let name = names[i] 66 let idx = indices[i] 67 exe ':badd ' .. name 68 let nr = bufnr('$') 69 70 let cmd = printf(':amenu Buffers.%s\ (%d)', name, nr) 71 let menu = split(execute(cmd), '\n')[1] 72 call assert_inrange(0, 0x7FFFFFFF, idx) 73 call assert_match('^' .. idx .. ' '.. name, menu) 74 endfor 75 76 %bw! 77 endfunc 78 79 " vim: shiftwidth=2 sts=2 expandtab