blob: d3f2897493a22623daa5b49e6fc88b42f9e6ce56 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
-- Tests for ":highlight".
local Screen = require('test.functional.ui.screen')
local helpers = require('test.functional.helpers')(after_each)
local clear, feed = helpers.clear, helpers.feed
local expect = helpers.expect
local eq = helpers.eq
local poke_eventloop = helpers.poke_eventloop
local exc_exec = helpers.exc_exec
local feed_command = helpers.feed_command
describe(':highlight', function()
setup(clear)
it('is working', function()
local screen = Screen.new(35, 10)
screen:attach()
-- Basic test if ":highlight" doesn't crash
feed_command('set more')
feed(':highlight<CR>')
-- FIXME(tarruda): We need to be sure the prompt is displayed before
-- continuing, or risk a race condition where some of the following input
-- is discarded resulting in test failure
screen:expect([[
:highlight |
SpecialKey xxx ctermfg=4 |
guifg=Blue |
EndOfBuffer xxx links to NonText|
|
TermCursor xxx cterm=reverse |
gui=reverse |
TermCursorNC xxx cleared |
NonText xxx ctermfg=12 |
-- More --^ |
]])
feed('q')
poke_eventloop() -- wait until we're back to normal
feed_command('hi Search')
feed_command('hi Normal')
-- Test setting colors.
-- Test clearing one color and all doesn't generate error or warning
feed_command('hi NewGroup cterm=italic ctermfg=DarkBlue ctermbg=Grey gui=NONE guifg=#00ff00 guibg=Cyan')
feed_command('hi Group2 cterm=NONE')
feed_command('hi Group3 cterm=bold')
feed_command('redir! @a')
feed_command('hi NewGroup')
feed_command('hi Group2')
feed_command('hi Group3')
feed_command('hi clear NewGroup')
feed_command('hi NewGroup')
feed_command('hi Group2')
feed_command('hi Group2 NONE')
feed_command('hi Group2')
feed_command('hi clear')
feed_command('hi Group3')
feed('<cr>')
eq('Vim(highlight):E475: Invalid argument: cterm=\'asdf',
exc_exec([[hi Crash cterm='asdf]]))
feed_command('redir END')
-- Filter ctermfg and ctermbg, the numbers depend on the terminal
feed_command('0put a')
feed_command([[%s/ctermfg=\d*/ctermfg=2/]])
feed_command([[%s/ctermbg=\d*/ctermbg=3/]])
-- Fix the fileformat
feed_command('set ff&')
feed_command('$d')
-- Assert buffer contents.
expect([[
NewGroup xxx cterm=italic
ctermfg=2
ctermbg=3
guifg=#00ff00
guibg=Cyan
Group2 xxx cleared
Group3 xxx cterm=bold
NewGroup xxx cleared
Group2 xxx cleared
Group2 xxx cleared
Group3 xxx cleared]])
end)
end)
|